Software Engineering Summary James Gain

Slides:



Advertisements
Similar presentations
Testing Workflow Purpose
Advertisements

The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Development Life-Cycle Models
Lecture # 2 : Process Models
SOFTWARE PROCESS MODELS. Software Process Models  Process model (Life-cycle model) -steps through which the product progresses Requirements phase Specification.
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Software Process Models
CS487 Software Engineering Omar Aldawud
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Software Engineering Introduction (The Process) James Gain
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Software Life Cycles ECE 417/617: Elements of Software Engineering
Object-oriented Analysis and Design
Chapter 21 Object-Oriented Analysis
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
© Copyright Eliyahu Brutman Programming Techniques Course.
SE 555 – Software Requirements & Specifications Introduction
COMP 350: Object Oriented Analysis and Design Lecture 2
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
System Design Chapter 8. Objectives  Understand the verification and validation of the analysis models.  Understand the transition from analysis to.
Software Configuration Management
CIS 321—IS Analysis & Design
UML - Development Process 1 Software Development Process Using UML (2)
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
1 CMPT 275 Software Engineering Software life cycle.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
CPIS 357 Software Quality & Testing
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Testing Workflow In the Unified Process and Agile/Scrum processes.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Prescriptive Process Models Jon Walker. Prescription? What does prescriptive mean?
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Approaching a Problem Where do we start? How do we proceed?
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Object-Oriented Analysis and Design. Lesson 1: Introduction to Software Engineering.
The Confounding World of Process Methodologies By Thelma Hataria.
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 3rd Edition Copyright © 2009 John Wiley & Sons, Inc. All rights.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
Requirements Engineering-Based Conceptual Modelling From: Requirements Engineering E. Insfran, O. Pastor and R. Wieringa Presented by Chin-Yi Tsai.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
Software Development Life Cycle(SDLC)‏
 System Requirement Specification and System Planning.
Methodologies and Algorithms
Software Process Models
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Software Engineering Fundamentals
Baisc Of Software Testing
Presentation transcript:

Software Engineering Summary James Gain

Overview lSummarize:  The Nature of Software Engineering  Analysis  Design  Testing  Methodology  Metrics  Teams  Project Planning

The Nature of Software lSoftware is a set of items or objects forming a “configuration” that includes:  Programs  Documents  Data lSoftware Characteristics:  Complexity  Conformity (to existing systems)  Changeability  Invisibility (difficult to visualize)

Process Models ModelStrengthsWeaknesses Build-and-Fix (hacking) Fine for short programs not needing maintenance Inappropriate for nontrivial programs Waterfall (linear) Disciplined approach Document driven Final product may not meet client’s real needs Prototyping (mock-ups) Helps to detail user’s requirements The prototype may outlive its usefulness IterativeGet early results Promotes maintenance May degenerate into CABTAB Spiral (phases with Risk Anal) Incorporates features from other models Only suited to large-scale in-house development Component- based (OO Re-use) Supports re-use and iteration Expensive in the short term

Analysis analysis designcodetest ProcessModel Output 1. Elicit customer requirements and identify use-cases Use-Case Diagrams 2. Extract candidate classes, Identify attributes and methods, Define a class hierarchy Class Responsibility Collaborator (CRC) Cards 3. Build an object-relationship model (structural) Conceptual Class Diagram 4. Build an object-behaviour model (dynamic) Interaction and State Diagrams

Use-Case Diagrams lGraphically shows use-cases, actors and their relationships. Use Case Communication Relationship Actor Analyze Risk Trader Price Deal Capture Deal Valuation Limits Exceeded > Includes Relationship Extends Relationship

CRC Cards class name: Overlay Image class type: Thing class characteristics: abstract, aggregate, sequential, transient responsibilities: collaborators: Place Save Resolution Edge Reference Image Black-and-white image

Class Diagrams Class Association Label Multiplicity

Sequence Diagrams Object Life Line Active Event

State Diagrams stop /ctr := 0stop [user quits] Final State Done Ready Transition Initial Pseudostate Action Event State Guard

Design Summary analysis designcodetest ProcessModel Output 1. Subsystem Design: partition the system into components A Package Diagram 2. Class and Object Design: define class hierarchies Specification Class Diagram 3. Message Design: convert the object-relationship model into a set of class messages Message Descriptions 4. Responsibility Design: specify the internal structure of classes Specification Class Diagram with full attribute and method syntax C++ Class Headers

Package Diagrams Mosaic Image Image Reference Picture Mosaic Generator Package Dependancy

Specification Class Diagrams

Testing Summary analysis designcodetest ProcessTechnique 1. Class Testing: test methods and state behaviour of classes Random, Partition and White-Box Tests 2. Integration Testing: test the interaction of sets of classes Random and Behavioural Testing 3. Validation Testing: test whether customer requirements are satisfied Use-case based black box and Acceptance tests 4. System Testing: test the behaviour of the system as part of a larger environment Recovery, security, stress and performance tests

Methodology lExtreme Programming in a nutshell:  Lightweight: little documentation or administration overhead  Agile: able to adapt quickly to changes in user requirements  Best for small scale projects with uncertain or evolving requirements lXP Style:  Iterative development (about a dozen iterations of 1-3 weeks each) of a complete system on each iteration  Just in time planning (does not plan much beyond the current iteration)  Emphasis on testing (unit tests are written before functionality)  Carefully considers people issues (stand-up meetings, pair programming, no overtime)

Metrics lAttempt to objectively quantify Software Engineering lIn order to characterize, evaluate, predict and improve the process and product a metric baseline is essential lApplication of Metrics: 1.Process: Measure and correct the software process applied by your organization over several projects. Use Function Point normalization to allow comparison across projects 2.Project: Create reliable estimates of time and cost. Track and control the project schedule 3.Product: Monitor and adjust aspects of the software as it is created. Object-oriented SE has specific metrics for analysis, design and coding

Teams OrganizationStrengthsWeaknesses Democratic (DD)Collective code ownership Handles hard problems Cannot be externally imposed May not scale Classical Chief Programmer (CC) Miraculous success with New York Times Impractical Modified Chief Programmer (CC) Scales well Handles strict delivery No successes comparable to New York Times Synchronize and Stabilize (CD) Encourages creativity Scales very well Is it effective outside Microsoft? Extreme Programming (DD) Many - sharing info, group ownership of code, improved quality Not fully proven DD = Democratic Decentralized, CC = Controlled Centralized, CD = Controlled Decentralized

Project Planning lScope—understand the problem and the work that must be done. lEstimation—how much effort? how much time? lRisk—what can go wrong? how can we avoid it? what can we do about it? lSchedule—how do we allocate resources along the timeline? what are the milestones? lControl strategy—how do we control quality? how do we control change? Software Project Plan Project Scope Estimates Risks Schedule Control strategy