1 Instructor: S. Masoud Sadjadi sadjadi At cs Dot fiu Dot edu Software Engineering and Project Communications.

Slides:



Advertisements
Similar presentations
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 12, Software Life Cycle.
Advertisements

Computer Science Department
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Unit 2. Software Lifecycle
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
Chap 2. Software Processes
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
CSE 470 : Software Engineering The Software Process.
CSC 480 Software Engineering
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Using UML, Patterns, and Java Object-Oriented Software Engineering 15. Software Life Cycle.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Alternate Software Development Methodologies
Pair of Wires Box 1Box 2 A Communication Example "Two missile electrical boxes manufactured by different contractors were joined together by a pair of.
CS 501: Software Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 3, Project Organization and Communication.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi
CEN Fourth Lecture Introduction to Software Engineering (CEN-4010) Instructor: Masoud Sadjadi Project Organization.
Chapter 3 Software Processes.
S/W Project Management
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Software Processes Sumber dari : cc.ee.ntu.edu.tw/~farn/courses/SE/ch4.ppt.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 3, Project Communication.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Instructor: Peter Clarke
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Software Engineering Management Lecture 1 The Software Process.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 3, Project Organization and Communication.
Lecture 3 Software Engineering Models (Cont.)
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CEN nd Lecture CEN 5011 Advanced Software Engineering Instructor: Masoud Sadjadi Software Life Cycle.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
An Introduction to Software Engineering
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering November 7, 2001 Project.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Chapter 3, Project Organization and Communication
CEN 4010 First Lecture January 10, 2005 CEN 4010 Introduction to Software Engineering Spring 2005 Instructor: Masoud Sadjadi
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
COP st Lecture August 29, 2005 COP 4009 Component-Based Software Engineering Fall 2005 Instructor: Masoud Sadjadi
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Chapter 3, Project Organization and Communication
IEEE Std 1074: Standard for Software Lifecycle
Software Processes (a)
Software Processes.
CEN 5011 Advanced Software Engineering
Chapter 2 – Software Processes
An Overview of Software Processes
Baisc Of Software Testing
Introduction to Software Engineering (CEN-4010)
CS310 Software Engineering Lecturer Dr.Doaa Sami
CEN 5011 Advanced Software Engineering
Presentation transcript:

1 Instructor: S. Masoud Sadjadi sadjadi At cs Dot fiu Dot edu Software Engineering and Project Communications

2 Agenda  Overview of Software Engineering  Software Processes  Software Life Cycle  Project Communications

3 Our Intention Requirements Software

4 Our plan of attack Requirements Analysis Design Implementation Testing Delivery and Installation

5 Agenda  Overview of Software Engineering  Software Processes  Software Life Cycle  Project Communications

6 Software Processes  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).

7 Software Specification (1)  Functionality of the software and constraints (non- functional requirements) on its operation must be defined.  functional requirement – describes the interaction between the system and its actors (e.g., end users and other external systems) independent of its implementation.  nonfunctional requirement – describes aspects of the system that are not directly related to the functional requirements of the system (e.g., QoS, security, scalability, performance, and fault-tolerance).

8 Software Specification (2)  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.  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.

9 Software Development (1)  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 –HW and SW platform, data management, control flow, and security.  Output: model describing subsystem decomposition and system strategies.

10 Software Development (2) 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.

11 Software Development Activities Problem Domain Implementation Domain Requirements Analysis What is the problem? System Design What is the solution? Object Design What is the solution in a specific context? Implementation How is the solution constructed?

12 Software Validation (1)  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.

13 Software Validation (2)  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.

14 Software Evolution  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.

15 Agenda  Overview of Software Engineering  Software Processes  Software Life Cycle  Project Communications

16 Software Life Cycle  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.

17 Software Life Cycle  Software construction goes through a progression of states Development Post- Development Pre- Development Conception Childhood Adulthood Retirement

18 Software Life Cycle Models  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

19 Waterfall Model (1)  The waterfall model –First described by Royce in 1970  There seem to be at least as many versions as there are authorities - perhaps more Requirements Definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance

20 Waterfall Model (2)  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.

21 Spiral Model (1)  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.

22 Spiral Model (2) Requirements plan Concept of operation Risk analysis Prototype 1 Prototype 2 Prototype 3 Risk analysis Risk analysis S/w Reqs. Validation Development Plan Integration Plan Design Validation Acceptance Test Sys. Product Design Integration & Test Unit Test Code Detailed Design Design objectives, alternatives, and constraints Plan next phase Evaluate alternatives, identify and resolve risks Develop and verify next level product Not shown in detail

23 Spiral Model (3)  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

24 Incremental Development (1)  Mills et al Define outline requirements Assign requirements to increments Design system architecture Develop system increment Validate increment Integrate increment Validate system System incomplete Final system

25 Incremental Development (2)  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.

26 Incremental Development (3) 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.

27 Extreme Programming  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!

28 Agenda  Overview of Software Engineering  Software Processes  Software Life Cycle  Project Communications

29 Communication Event Type of information exchange that has defined objectives and scope  Scheduled –Planned communication –For example, review, meeting  Unscheduled –Event-driven communication –For example, request for change, issue clarification, problem report

30 Communication mechanism Tool or procedure that can be used to transmit information  Synchronous –Sender and receiver are available at the same time.  Asynchronous –Sender and Receiver are not communicating at the same time.

31 Classification of Communication  Synchronous –Hallway conversation –Meeting in person –Online meetings  EVO, Skype, Chat, etc. –Phone conversation  Asynchronous – –Instant messaging –Group Forums –Wiki pages is supported by ** Synchronous Mechanism Asynchronous Mechanism Communication Mechanism Unplanned Event Planned Event Communication Event

32 Planned Communication Events 2  Walkthrough (Informal) –Objective: Increase quality of subsystem. –Example: Developer presents subsystem to team members, informal, peer-to-peer. –To be scheduled by each team.  Inspection (Formal) –Objective: Compliance with requirements. –Example: Client acceptance test (Demonstration of final system to customer). –To be scheduled by project management.

33 Planned Communication Events 3  Status Review – Objective: Find deviations from schedule and correct them or identify new issues. –Example: Status section in regular weekly team meeting. –Scheduled every week.  Brainstorming –Objective: Generate and evaluate large number of solutions for a problem. –Example: Discussion section in regular weekly team meeting. –Scheduled every week.

34 Planned Communication Events 4  Release –Objective: Baseline the result of each software development activity. – Software Project Management Plan (SPMP) –Requirements Analysis Document (RAD) –System Design Document (SDD) –Object Design Document (ODD) –Test Manual (TM) –User Manual (UM) –Usually scheduled after each phase  Postmortem Review –Objective: Describe Lessons Learned. –Scheduled at the end of the project.

35 Unplanned Communication Events  Request for clarification –The bulk of communication among developers, clients and users. –Example: A developer may request a clarification about an ambiguous sentence in the problem statement.  Request for change –A participant reports a problem and proposes a solution –Change requests are often formalized when the project size is substantial. –Example: A participant reports of a problem the air conditioner in the lecture room and suggests a change.  Issue resolution –Selects a single solution to a problem for which several solutions have been proposed. –Uses issue base to collect problems and proposals

36 Summary  Communication Events –Planned –Unplanned  Communication Mechanisms –Asynchronous –Synchronous  Important events and mechanisms –Sync. Communications  Class meetings, weekly group meetings, project reviews, chat, etc. –Async. communication  Group forums, , wiki pages, instant messaging, etc.