CSC 450 CSC450 Software Engineering Devon M. Simmonds University of North Carolina, Wilmington Introduction to System Engineering 1 Outline CSC 450 Introduction to system engineering System engineering tasks Need identification and scoping Information gathering techniques Workflow modeling with UML activity diagrams Feasibility studies Function/need allocation 2 CSC 450 System Engineering/Analysis Software Lifecycle Activities Software Design Requirements Analysis Implementation System Engineering Testing Systems Engineering Deployment Identify needs/problems Allocation of roles Hardware Procedures Software Evolution Feasibility studies 3 What is a System? CSC 450 A system may be defined as a collection of interacting, interdependent components which act together in achieving some common goal. Each component may itself be a system. 4 What is a System? CSC 450 A business/computer-based system is usually composed of the following: Software Hardware People Documentation Procedures 5 CSC 450 System Engineering Software exists within some larger system Encompassing system must be understood if software is to work properly within system The domain is the general field of business or technology in which the clients will use the software Domain analysis : the process by which a software engineer learns about the domain to better understand the problem: A domain expert is a person who has a deep knowledge of the domain Aviation System What does it consist of? 6 CSC 450 System Engineering (2) Always design a thing by considering it in its next larger context – a chair in a room, a room in a house, a house in an environment, an environment in a city plan.” If the system exists within a business organization system engineering is referred to as business process engineering Systems engineering is also called systems analysis. 7 System Engineering/AnalysisCSC 450 Process Systems engineering is a problem-solving activity concerned with modeling the system encompassing software. System engineering process Establishing the user’s need and the software scope Conducting software project planning Conducting a feasibility study Allocating functions to hardware, software, people, database, etc. 8 System Engineering/Analysis Tasks CSC 450 Need identification and scoping Project planning Feasibility study Allocation of functions/needs to components Hardware Software Allocating functions to software includes scoping! Procedures 9 System Engineering/Analysis: CSC 450 Need identification process Information One onGathering One Group meeting The need identification process involves: Initial meetings Information gathering Document reviews, interviews, questionnaires, observations, measurements 10 CSC 450 System Analysis: Need identification process The need identification process involves: Initial meetings Information gathering (Kendall & Kendall) Document reviews, interviews, questionnaires, observations, measurements Workflow modeling & analysis Activity diagrams/dataflow diagrams using UML 11 CSC 450 Information Gathering Techniques 12 Information Gathering: CSC 450 Document Reviews Why review documents anyway? Often a useful point to start in the analysis process Advantages of document review: Documentation is generally portable Documentation is generally easily accessible Disadvantages: Documentation typically available on various aspect of an organization The volume of documentation may be large Documentation is often inaccurate and outdated Documentation is often sketchy. Checklist of potential documents: Manuals detailing company organization, policy and existing systems. Manuals detailing job descriptions and staff duties and responsibilities. Previous reports and investigations. Publicity and promotional material. 13 CSC 450 Information Gathering: An interview is a directed conversation that is goaldriven and uses a question-answer format. Interviews Exit interview, phone interview, lunch interview, panel interview Kinds of information sought Facts Opinions Scenarios 1 conclusion? Owner is overstating the facts? Scenarios 2 conclusion? Interview Scenarios (from Kendall & Kendall) Owner is NOT overstating the facts, she wants the problem with refunds Scenario 2: addressed! Scenario 1: Systems Engineer: “What are your major concerns related to customer refunds?” Systems Engineer: “How many customer refunds do you typically give per week?” Client: “Customer refunds are way too high. We need to get it right the first time” Client: “About 20 to 25 per week” Facts: When you search available documentation, the average is only 10.5 per Facts: week. When you search available documentation, the average is only 10.5 per week. Question: can you draw? Question:What Whatinferences inferences can you draw? The interview is probably the single most important tool in information gathering process. 14 CSC 450 Information Gathering: Interviews Kinds of information sought Facts Opinions Feelings May reflect emotion, attitudes and organizational culture Goals The interview is probably the single most important tool in information gathering process. 15 CSC 450 Information Gathering: Interview Planning Five preparatory steps Read background material Establish interview objectives Decide who to interview Prepare the interviewee Objectives address information sources, formats and quality, decision-making, client goals Call, send email, set limit of 45-60 mins Decide on type of questions and structure of questions The interview is probably the single most important tool in information gathering process. 16 CSC 450 Information Gathering: Interview Planning Question types Open-ended Response not limited Closed Limits response E.g. yes, no Probes Follow-up questions The interview is probably the single most important tool in information gathering process. 17 CSC 450 Information Gathering: Interview Planning Question pitfalls Avoid leading questions You agree with other managers that Sales should be computerized, don’t you? Do you think Sales should be computerized? What do you think of computerizing sales? Avoid double-barreled questions? Why are projects outsourced, and how did you go about selecting the outsourcing process? The interview is probably the single most important tool in information gathering process. 18 CSC 450 Information Gathering: Interview Planning Question formats – how to arrange questions Pyramid structure Inductive style Funnel structure Deductive style closed questions open-ended questions Open-ended questions closed questions Diamond structure Combination of first two Interviews may be recorded but be aware of the Hawthorne effect! 19 CSC Job Interview Questions - 450 Examples What are your long-range goals and objectives? What are the most important rewards you expect in your career? What are your strengths, weaknesses, and interests? Are you willing to travel? How do you work under pressure? Describe a situation in which you worked as part of a team. What role did you take on? What went well and what didn't? 20 Information Gathering: CSC 450 Questionnaires A data gathering survey document with questions and space for answers. Similar rules apply for question design and organization – with some differences Allow ample white space – attractiveness Allow adequate space for responses Use scales where possible List most important questions first Cluster items of similar content together Bring up less controversial items first Allocating functions to software includes scoping! 21 Information Gathering: CSC 450 Questionnaires Scales Nominal Ordinal Used to order or rank Interval Used to classify Interval between items are equal Ratio Allocating functions to software includes scoping! Has an absolute zero 22 Information Gathering: CSC 450 Questionnaires Nominal Data Classification data 1 2 3 4 = = = = Computer Science Psychology Accounting Chemistry no ordering, e.g. it makes no sense to state that Psychology > Computer Science arbitrary labels Data can be counted but not ordered 23 Information Gathering: CSC 450 Questionnaires Ordinal Data Ordering but difference between values not important 1 2 3 4 5 = = = = = Extremely Helpful Very Helpful Moderately Helpful Not Very Helpful Not Helpful At All Data can be counted and ordered 24 Information Gathering: CSC 450 Questionnaires Interval Data Ordered, constant scale i.e. difference between values are equal How many hours do dogs sleep at night? 2 4 6 8 hours hours hours hours Data may be added and subtracted but not multiplied or divided. 25 Information Gathering: CSC 450 Questionnaires Ratio Data Approximately how many hours do you spend on the computer daily? 0 2 4 6 8 Data may be added, subtracted, multiplied and divided. 26 CSC 450 Information Gathering: Constructing Scales: Validity & reliability Validity Does a question measure what it is intended to measure? Reliability Is the questionnaire consistent? Allocating functions to software includes scoping! 27 CSC 450 System Engineering Tasks Need identification and scoping Project planning Feasibility study Allocation of functions/needs to components Hardware Software Procedures Allocating functions to software includes scoping! 28 Feasibility Study CSC 450 A feasibility study is a preliminary study undertaken before the real work of a project starts to ascertain the likelihood of the project's success. It is an analysis of possible alternative solutions to a problem and a recommendation on the best alternative. Wikipedia.com 29 Feasibility Study CSC 450 Feasibility study subareas Economic feasibility Technical feasibility Analysis of human and technical resources Legal Feasibility Costs versus benefits Analysis of legal constraints and issues Alternatives Evaluation of alternative approaches to solving problem. 30 Feasibility Study CSC 450 Feasibility study subareas Economic feasibility Technical feasibility Are financial resources available? Do cost/benefit analysis justify development? Is the market ready for the product? How difficult is it to build software? Is required experience available? Is required technology available? Is time available to build software? Legal Feasibility What legal problems do we anticipate? Are these problems surmountable? Do we have legal counsel? What are the cost implications of these problems? A feasibility study is not complete without an analysis of risks? 31 CSC 450 System Engineering Tasks Need identification and scoping Project planning Feasibility study Allocation of functions/needs to components Hardware Software Procedures Allocating functions to software includes scoping! 32 Need Identification: CSC 450 Workflow Modeling (later) Next, the role of modeling in engineering software. 33 CSC 450 Role of Models in Engineering To help us understand complex systems Useful for both requirements and designs Minimize risk by detecting errors and omissions early in the design cycle (at low cost) Through analysis and experimentation Investigate and compare alternative solutions To communicate understanding Stakeholders: clients, users, implementers, testers, documenters, etc. To drive implementation The model as a blueprint for construction 34 CSC 450 Engineering Models Engineering model: A reduced representation of some system that highlights the properties of interest from a given viewpoint Modeled system Modeled System Functional System Model Functional •We do not see everything at once •We see a representation that is easily understood for the purpose at hand 35 CSC 450 Models in other disciplines New Hanover Regional Medical Center First Floor Model Doghouse How models help Models A model vary is a representation in complexity of an item Focus on what is important A model does not show all the features Skyscraper Essential complexity, accidental complexity A model is an abstraction: abstraction = hide details Mitigate risks Ensure quality 36 CSC 450 Models in other disciplines 2005 Champions A - Making a V-cut to get the ball. B - Receiving Inside Hand-off. Roy Williams 37 CSC 450 What characteristics should a useful model possess? … 38 CSC 450 Characteristics of Useful Models Abstract Understandable Faithfully represents the modeled system Predictive Expressed in a form that is readily understood by observers Accurate Emphasize important aspects while removing irrelevant ones Can be used to answer questions about the modeled system Inexpensive Much cheaper to construct and study than the modeled system 39 The Remarkable Thing About Software CSC 450 “Software has the rare property that it allows us to directly evolve models into full-fledged implementations without changing the engineering medium, tools, or methods!” - Bran Selic • The model evolves into the system it models 40 CSC 450 The Unified Modeling Language The UML is a standard diagramming language to visualize the results of analysis and design. UML is a tool Learning how to create high-quality models is not equivalent to learning the UML UML is simply a language for expressing models The UML is not a process or methodology an object-oriented analysis and design technique a modeling technique 41 UML Goals Define an easy-to-learn but semantically rich visual modeling language Unify the Booch, OMT, and Objectory modeling languages Include ideas from other modeling languages Incorporate industry best practices Address contemporary software development issues CSC 450 scale, distribution, concurrency, executability, etc. Provide flexibility for applying different processes 42 CSC 450 UML 2.* Diagram Types Class diagrams Activity diagrams State machines Sequence diagrams Object diagrams Component diagrams Deployment diagrams Package diagrams etc. 14 types altogether LINK UML Specification 43 Need Identification: CSC 450 Workflow Modeling Workflow is a description of work done, tasks performed, the order in which tasks are performed, who performs tasks, how tasks are structured and synchronized and the input and output of activities. In UML, workflows may be described using Activity Diagrams. 44 CSC 450 Summary In this class we discussed What is system engineering System engineering tasks Need identification and scoping Information gathering techniques Workflow modeling with UML activity diagrams Feasibility studies Function/need allocation Brief overview of UML 45 Summary CSC 450 What’s coming next class? Qu es ti ons? ______________________ Devon M. Simmonds Computer Science Department University of North Carolina Wilmington _____________________________________________________________ 46