460 likes | 672 Views
Devon M. Simmonds University of North Carolina, Wilmington . Introduction to System Engineering. CSC450 Software Engineering. Outline. Introduction to system engineering System engineering tasks Need identification and scoping Information gathering techniques
E N D
Devon M. Simmonds University of North Carolina, Wilmington Introduction to System Engineering CSC450Software Engineering
Outline • 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
System Engineering/Analysis • Software Lifecycle Activities Software Design Requirements Analysis Implementation System Engineering Testing • Systems Engineering • Identify needs/problems • Allocation of roles • Hardware • Procedures • Software • Feasibility studies Deployment Evolution
What is a System? • 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.
What is a System? • A business/computer-based system is usually composed of the following: • Software • Hardware • People • Documentation • Procedures
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?
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.
System Engineering/Analysis 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.
System Engineering/Analysis Tasks • Need identification and scoping • Project planning • Feasibility study • Allocation of functions/needs to components • Hardware • Software • Procedures Allocating functions to software includes scoping!
System Engineering/Analysis: Need identification process • The need identification process involves: • Initial meetings • Information gathering • Document reviews, interviews, questionnaires, observations, measurements Information Gathering One on One Group meeting
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
Information Gathering: Document Reviews • Why review documents anyway? • Often a useful point to start in the analysis process • Documentation typically available on various aspect of an organization • Advantages of document review: • Documentation is generally portable • Documentation is generally easily accessible • Disadvantages: • 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.
Information Gathering:Interviews • An interview is a directed conversation that is goal-driven and uses a question-answer format. • 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? • Owner is NOT overstating the facts, she wants the problem with refunds addressed! Interview Scenarios (from Kendall & Kendall) Scenario 1: Systems Engineer: “How many customer refunds do you typically give per week?” Client: “About 20 to 25 per week” Facts: When you search available documentation, the average is only 10.5 per week. Question: What inferences can you draw? Scenario 2: Systems Engineer: “What are your major concerns related to customer refunds?” Client: “Customer refunds are way too high. We need to get it right the first time” Facts: When you search available documentation, the average is only 10.5 per week. Question: What inferences can you draw? The interview is probably the single most important tool in information gathering process.
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.
Information Gathering:Interview Planning • Five preparatory steps • Read background material • Establish interview objectives • Objectives address information sources, formats and quality, decision-making, client goals • Decide who to interview • Prepare the interviewee • 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.
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.
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.
Information Gathering:Interview Planning • Question formats – how to arrange questions • Pyramid structure • Inductive style • closed questions open-ended questions • Funnel structure • Deductive style • Open-ended questions closed questions • Diamond structure • Combination of first two Interviews may be recorded but be aware of the Hawthorne effect!
Job Interview Questions - 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?
Information Gathering: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!
Information Gathering:Questionnaires • Scales • Nominal • Used to classify • Ordinal • Used to order or rank • Interval • Interval between items are equal • Ratio • Has an absolute zero Allocating functions to software includes scoping!
Information Gathering:Questionnaires • Nominal Data • Classification data • 1 = Computer Science • 2 = Psychology • 3 = Accounting • 4 = Chemistry • no ordering, e.g. it makes no sense to state that Psychology > Computer Science • arbitrary labels • Data can be counted but not ordered
Information Gathering:Questionnaires • Ordinal Data • Ordering but difference between values not important • 1 = Extremely Helpful • 2 = Very Helpful • 3 = Moderately Helpful • 4 = Not Very Helpful • 5 = Not Helpful At All • Data can be counted and ordered
Information Gathering:Questionnaires • Interval Data • Ordered, constant scale i.e. difference between values are equal • How many hours do dogs sleep at night? • 2 hours • 4 hours • 6 hours • 8 hours • Data may be added and subtracted but not multiplied or divided.
Information Gathering: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.
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!
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!
Feasibility Study • 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
Feasibility Study • Feasibility study subareas • Economic feasibility • Costs versus benefits • Technical feasibility • Analysis of human and technical resources • Legal Feasibility • Analysis of legal constraints and issues • Alternatives • Evaluation of alternative approaches to solving problem.
Feasibility Study • Feasibility study subareas • Economic feasibility • Are financial resources available? • Do cost/benefit analysis justify development? • Is the market ready for the product? • Technical feasibility • 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?
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!
Need Identification:Workflow Modeling • but first, the role of modeling in engineering software.
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
Functional Model Modeled system Engineering Models • Engineering model: A reduced representation of some system that highlights the properties of interest from a given viewpoint Functional System Modeled System • We do not see everything at once • We see a representation that is easily understood for the purpose at hand
New Hanover Regional Medical Center First Floor Model Doghouse Skyscraper Models in other disciplines • How models help • Focus on what is important • Essential complexity, accidental complexity • Mitigate risks • Ensure quality • Models vary in complexity • A model is a representation of an item • A model does not show all the features • A model is anabstraction: abstraction = hide details
Models in other disciplines 2005 Champions • A - Making a V-cut to get the ball. B - Receiving Inside Hand-off. Roy Williams
Characteristics of Useful Models • Abstract • Emphasize important aspects while removing irrelevant ones • Understandable • Expressed in a form that is readily understood by observers • Accurate • Faithfully represents the modeled system • Predictive • Can be used to answer questions about the modeled system • Inexpensive • Much cheaper to construct and study than the modeled system
“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 Remarkable Thing About Software • The model evolves into the system it models
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
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 • scale, distribution, concurrency, executability, etc. • Provide flexibility for applying different processes
LINK UML Specification UML 2.0 Diagram Types • Class diagrams • Activity diagrams • State machines • Sequence diagrams • Object diagrams • Component diagrams • Deployment diagrams • Package diagrams • etc. 14 types altogether
Need Identification: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.
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
Qu es ti ons? Summary • What’s coming next class? ______________________ Devon M. Simmonds Computer Science Department University of North Carolina Wilmington _____________________________________________________________