1 / 55

CEN 4010 Introduction to Software Engineering

CEN 4010 Introduction to Software Engineering. Spring 2006 Instructor: Masoud Sadjadi http://www.cs.fiu.edu/~sadjadi/Teaching. Acknowledgements. Overview:. Dr. Peter Clarke Dr. Betty Cheng Dr. Bernd Bruegge Dr. Allen Dutoit. Introduction. Evaluation. SW Life Cycle.

titania
Download Presentation

CEN 4010 Introduction to Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi http://www.cs.fiu.edu/~sadjadi/Teaching

  2. Acknowledgements Overview: • Dr. Peter Clarke • Dr. Betty Cheng • Dr. Bernd Bruegge • Dr. Allen Dutoit Introduction Evaluation SW Life Cycle

  3. What is Software Engineering? (1) Overview: • Systematic approach for developing software • “Methods and techniques to develop and maintain quality software to solve problems.” [Pfleeger, 1990] • “Study of the principles and methodologies for developing and maintaining software systems.” [Zelkowitz, 1978] • “Software engineering is an engineering discipline which is concerned with all aspects of software production.” [Sommerville] Introduction Home Page SE Overview Definition How to apply? Course Outcome Evaluation SW Life Cycle

  4. What is Software Engineering? (2) Overview: • “Practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate, and maintain them.” [Boehm, 1976] • “Deals with establishment of sound engineering principles and methods in order to economically obtain software that is reliable and works on real machines.” [Bauer, 1972] Introduction Home Page SE Overview Definition How to apply? Course Outcome Evaluation SW Life Cycle

  5. Questions Addressed by SE Overview: • How do we ensure the quality of the software that we produce? • How do we meet growing demand and still maintain budget control? • How do we avoid disastrous time delays? Introduction Home Page SE Overview Definition How to apply? Course Outcome Evaluation SW Life Cycle

  6. Why apply SE to Systems? Overview: • Provide an understandable process for system development. • Develop systems and software that are maintainable and easily changed. • Develop robust software and system. • Allow the process of creating computing-based systems to be repeatable and manageable. Introduction Home Page SE Overview Definition How to apply? Course Outcome Evaluation SW Life Cycle

  7. How can we apply SE? Overview: • Modeling • Problem-solving • Knowledge acquisition • Rationale-driven Introduction Home Page SE Overview Definition How to apply? Course Outcome Evaluation SW Life Cycle

  8. Modeling Overview: • “A model is an abstract representation of a system that enables us to answer questions about the system.” • Why use a model? • Systems are too large, too small, too complicated, or too expensive, to experience firsthand. • Models allow • Visualization • Comprehension Introduction Home Page SE Overview Definition How to apply? Course Outcome Evaluation SW Life Cycle

  9. Problem Solving Overview: • Steps in problem solving: • Formulate the problem • Analyze the problem • Search for solutions • Decide on the appropriate solution • Specify the solution Introduction Home Page SE Overview Definition How to apply? Course Outcome Evaluation SW Life Cycle

  10. Knowledge Acquisition Overview: • Domain specific knowledge. • New knowledge can affect the development process. • Knowledge acquisition is nonlinear – affects several of the software development models. • Risk assessment is important. Introduction Home Page SE Overview Definition How to apply? Course Outcome Evaluation SW Life Cycle

  11. Rationale Management Overview: • Assumptions made about systems change constantly. • Application domain models stabilize, solution domain models are in constant flux. • Changes to the solution models due to: • design and implementation faults • new technology • Need to understand the context in which each design decision was made. Introduction Home Page SE Overview Definition How to apply? Course Outcome Evaluation SW Life Cycle

  12. Course Outcomes Overview: • Familiarity with the Software Development Life Cycle. • Mastering the techniques to gather and specify the requirements of a medium-size software system using UML. • Mastering the techniques to design and implement a medium-size software system. • Familiarity with software testing techniques. • Familiarity with software documentation. • Familiarity with working in a small software development team. • Familiarity with system walkthroughs. • Familiarity with maintaining software and managing change. Introduction Home Page SE Overview Course Outcome Evaluation SW Life Cycle

  13. Evaluation Overview: • What is Software Engineering? • What questions are answered by Software Engineering? • How can we apply Software Engineering? • What should you expect from this class? What are the outcomes? Introduction Evaluation SW Life Cycle

  14. Agenda Overview: • Course Introduction • Evaluation • Software Life Cycle Introduction Evaluation SW Life Cycle

  15. Our Intention Overview: Introduction Evaluation SW Life Cycle Requirements Motivation Terminology SW Processes SW Life Cycle Cap. Maturity Software

  16. Requirements Analysis Design Implementation Testing Delivery and Installation Our plan of attack Overview: Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Cap. Maturity

  17. D E L A Y Vaporware How it often goes Overview: Introduction Evaluation Requirements Analysis SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Cap. Maturity

  18. Inherent Problems Overview: • Requirements are complex • The client does not know the functional requirements in advance. • Requirements may be changing • Technology enablers introduce new possibilities to deal with nonfunctional requirements. • Frequent changes are difficult to manage • Identifying milestones and cost estimation are difficult. • There is more than one software system • Backward compatible with existing systems • Let’s view these problems as the nonfunctional requirements for a system that supports software development! • This leads us to software life cycle modeling Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Cap. Maturity

  19. Terminology (1) Overview: • participants – all persons involved in a project. e.g., developers, project manager, client, end users. • role – associated with a set of tasks assigned to a participant. • system – underlying reality. • model – abstraction of the reality. • work product – an artifact produced during development. • deliverable – work product for client. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Cap. Maturity

  20. Terminology (2) Overview: • activity – a set of tasks performed toward a specific purpose. • milestone – end-point of a software process activity. • task – an atomic unit of work that can be managed and that consumes resources. • goal – high-level principle used to guide the project. • functional requirement – an area of functionality that the system must have. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Cap. Maturity

  21. Terminology (3) Overview: • nonfunctional requirement – a constraint on the system. • notation – is a graphical or textual set of rules representing a model (e.g., UML) • method – a repeatable technique for solving a specific problem e.g. sorting algorithm • methodology – a collection of methods for solving a class of problems (e.g., Unified Software Development Process). Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Cap. Maturity

  22. Software Processes Overview: • Specification • requirements elicitation and analysis. • Development • systems design, detailed design (OO design), implementation. • Validation • validating system against requirements (testing). • Evolution • meet changing customer needs and error correction (maintenance). Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Cap. Maturity

  23. 1. Software Specification (1) Overview: • Functionality of the software and constraints (non-functional requirements) on its operation must be defined. • Involves: • Requirements elicitation • The client and developers define the purpose of the system. • Output is a description of the system in terms of actors and uses cases. • Actors include roles such as end users and other computers the system needs. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes Specification Development Validation Evolution SW Life Cycle Cap. Maturity

  24. 1. Software Specification (2) Overview: • Uses cases are general sequences of events that describe all possible actions between actor and the system for a given piece of functionality. Analysis • Objective: produce a model of the system that is correct, complete, consistent, unambiguous, realistic, and verifiable. • Developers transform the use cases into an object model that completely describes the system. • Model is checked for ambiguities and inconsistencies. • Output: Object model annotated with attributes, operations, and associations. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes Specification Development Validation Evolution SW Life Cycle Cap. Maturity

  25. 2. Software Development (1) Overview: • Producing the software that meets the specification. System Design • Goals of the project are defined. • System decomposed into smaller subsystems (architectural model). • Strategies to build system identified • HWand SW platform, data management, control flow, and security. • Output: model describing subsystem decomposition and system strategies. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes Specification Development Validation Evolution SW Life Cycle Cap. Maturity

  26. 2. Software Development (2) Overview: Object Design • Bridges the gap between analysis model and the strategies identified in the system design. Includes: • Describing object and subsystem interfaces • Selecting off–the-shelf components • Restructure object model to attain design goals • e.g., extensibility, understandability, and required performance. • Output: detailed object model annotated with constraints and supporting documentation. Implementation • Translation of the object model into source code. • No general process followed. • There are tools to assists the programmer such as CASE tools. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes Specification Development Validation Evolution SW Life Cycle Cap. Maturity

  27. Requirements Analysis System Design Object Design Implementation Software Development Activities Overview: Introduction What is the problem? Evaluation SW Life Cycle Motivation Terminology What is the solution? SW Processes Specification Problem Domain Development Validation Implementation Domain What is the solution in a specific context? Evolution SW Life Cycle Cap. Maturity How is the solution constructed?

  28. 3. Software Validation (1) Overview: • Ensures the software does what the customer want. • The software conforms to its specification and meets the expectations of the customer. Validation: ‘Are we building the right product?’ Ensures the software meets the expectations of the customer. Verification: ‘Are we building the product right?’ Ensures the software conforms to the specification. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes Specification Development Validation Evolution SW Life Cycle Cap. Maturity

  29. 3. Software Validation (2) Overview: • Techniques • Software inspections (static): • Analyze and check system representations (e.g., requirements documents, design diagrams, and program source code). • Software testing (dynamic): • Executing an implementation of the software with test data and examining the outputs against expected results. • V&V process establishes the existence of defects. • Debugging is a process that locates and corrects these defects. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes Specification Development Validation Evolution SW Life Cycle Cap. Maturity

  30. 4. Software Evolution Overview: • Software must evolve to meet the customer needs. • Software maintenance is the process of changing a system after it has been delivered. • Reasons for maintenance • To repair faults. • To adapt the software to a different operating environment. • To add to or modify system’s functionality. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes Specification Development Validation Evolution SW Life Cycle Cap. Maturity

  31. Attributes of Good Software Overview: • Maintainability • Ease of changing the software to meets the changing needs of the customer. • Dependability • Reliability, security and safety. • Efficiency • Responsiveness, processing time, and memory usage. • Usability • Appropriate user interface and adequate documentation. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes Specification Development Validation Evolution SW Life Cycle Cap. Maturity

  32. Software Life Cycle Overview: • Software life cycle modeling • Attempt to deal with complexity and change. • Software life cycle • Set of activities and their relationships to each other to support the development of a software system . • Software development methodology • A collection of techniques for building models, which are applied across the software lifecycle. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Cap. Maturity

  33. Software Life Cycle Overview: • Software construction goes through a progression of states Introduction Evaluation SW Life Cycle Motivation Terminology Adulthood Retirement Childhood Conception SW Processes SW Life Cycle Cap. Maturity Pre- Development Post- Development Development

  34. Software Life Cycle Models Overview: • Waterfall model and its problems • Pure Waterfall Model • V-Model • Iterative process models • Boehm’s Spiral Model • Unified Process Model • Entity-based models • Issue-based Development Model • Concurrent Development Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity

  35. Requirements Definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance Waterfall Model (1) Overview: • The waterfall model • First described by Royce in 1970 • There seem to be at least as many versions as there are authorities - perhaps more Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity

  36. Waterfall Model (2) Overview: • One or more documents are produced after each phase and “signed off”. • Points to note: • “Water does not flow up”. • it is difficult to change artifact produced in the previous phase. • This model should be used only when the requirements are well understood. • Reflects engineering practice. • Simple management model. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity

  37. Requirements Specification Acceptance test System design System and integration test Detailed Design Unit Test Implementation From Waterfall to V Model Overview: • Horizontal lines denote the information flow between activities at the same abstraction level. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity

  38. V Model Overview: • Similar to pure waterfall model but makes explicit the dependency between development and verification activities. • The left half of the V represents development and the right half system validation. • Note the requirements specification includes requirements elicitation and analysis. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity

  39. Spiral Model (1) Overview: • Basic Idea • develop initial implementation, expose it to user, and refine it until an adequate system is produced. • Two types: • Exploratory • Throw-away prototyping • Advantages • model used when problem is not clearly defined. • Disadvantages • Process not visible, systems are poorly constructed, may require special tools and techniques. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity

  40. Spiral Model (2) Design objectives, alternatives, and constraints Evaluate alternatives, identify and resolve risks Overview: Introduction Evaluation Risk analysis SW Life Cycle Risk analysis Motivation Terminology Risk analysis SW Processes Prototype 3 Not shown in detail SW Life Cycle Prototype 2 Prototype 1 Waterfall Concept of operation Requirements plan S/w Reqs. Detailed Design Iterative Sys. Product Design Entity-Based Development Plan Reqs. Validation Cap. Maturity Code Integration Plan Design Validation Unit Test Integration & Test Acceptance Test Develop and verify next level product Plan next phase

  41. Spiral Model (3) Overview: • Tries to accommodate infrequent change during development. • Each round of the spiral involves: • Determine objectives • Specify constraints • Generate alternatives • Identify risks • Resolve risks • Develop and verify next level product • Plan Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity

  42. Define outline requirements Assign requirements to increments Design system architecture Develop system increment Validate increment Integrate increment Validate system Final system System incomplete Incremental Development (1) Overview: • Mills et al. 1980 Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity

  43. Incremental Development (2) Overview: • Software specification, design and implementation is broken down into a series of increments which are developed in turn. • Gives customers some opportunities to delay decisions on the detailed requirements of the system. • Services are identified and a priority allocated. • Each increment provides a subset of the system’s functionality. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity

  44. Incremental Development (3) Overview: Advantages: • Customers do not have to wait for the entire system. • Customers gain experience using early increments of the system. • Lowers the risk of overall project failure. • Most important system services receives the most testing. Disadvantages: • May be difficult to map meaningful functionality into small increments. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity

  45. Extreme Programming Overview: • The incremental approach has evolved to ‘extreme programming’ (Beck 1988). • Extreme programming: • Development and delivery of very small increments. • Customer involvement in the process. • Constant code improvement. • Egoless programming • Programs are regarded as group property! Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity

  46. Unified Software Development Process (1) Overview: • Similar to Boehm’s spiral model. • A project consists of several cycles, each ends with the delivery of a product to the customer. • Each cycle consists of four phases: • Inception • Elaboration • Construction • Transition • Each phase consists of a number of iterations. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity

  47. Unified Software Development Process (2) Overview: • Inception ends with • commitment from the project sponsor to go ahead. • Elaboration ends with • basic architecture of the system in place, • a plan for construction agreed, • all significant risks identified, and • major risks understood enough not to be too worried. • Construction ends with • a beta-release system. • Transition • is the process of introducing the system to it users. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity

  48. Unified Software Development Process (2) Overview: System Development Introduction Evaluation Analysis model SW Life Cycle specified by Motivation Terminology realized by Design model SW Processes SW Life Cycle Use case model Waterfall distributed by Deployment model Iterative Entity-Based implemented by Cap. Maturity Implementation model Requirements captured as a set of use cases. verified by Test model

  49. Unified Software Development Process (3) Overview: • Deployment model • physical communication links between hardware items. • relationships between physical machines and processes. • The models in the Unified Process are traceable • A model element can be traced to at least one element in an associated model. • Transition between models are seamless • we can tell in a foreseeable way how to get from an element in one model to one/more elements in an associated model. Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity

  50. SD.I1:Closed I1:Open A.I1:Open SD.I3:Closed I3:Closed I2:Closed A.I2:Open SD.I2:Closed Planning Requirements Analysis System Design Issue-Based Development Overview: • A system is described as a collection of issues • Issues are either closed or open. • Closed issues have a resolution. • Closed issues can be reopened (Iteration!). • The set of closed issues is the basis of the system model Introduction Evaluation SW Life Cycle Motivation Terminology SW Processes SW Life Cycle Waterfall Iterative Entity-Based Cap. Maturity

More Related