Software IMprovement using Product LinEs Project Final Presentation Liana Lisboa – PM Project: Starship.

Slides:



Advertisements
Similar presentations
Systems Analysis and Design in a Changing World
Advertisements

Chapter 8: Evaluating Alternatives for Requirements, Environment, and Implementation.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 4: Phase Management - Elaboration.
Software IMprovement using Product LinEs Project Presentation (I) - Domain Analysis Results Liana Lisboa - PM Project: Starship Games PL.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 15 Finalizing.
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
Physical design. Stage 6 - Physical Design Retrieve the target physical environment Create physical data design Create function component implementation.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Software IMprovement using Product LinEs Project Presentation (III) - Implementation Liana Lisboa – PM Project: Starship.
1 ECCF Training 2.0 Introduction ECCF Training Working Group January 2011.
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: Systems Engineering 35 Computer System Engineering Computer System Engineering is a problem-solving activity. Itemize desired.
Software IMprovement using Product LinEs Project Presentation (II) - Architecture Design Alexandre Martins – SQA Rodrigo Mendes - Software Architect Project:
Software IMprovement using Product LinEs Project Presentation (III) - Implementation Liana Lisboa – PM Project: Starship.
System Engineering Instructor: Dr. Jerry Gao. System Engineering Jerry Gao, Ph.D. Jan System Engineering Hierarchy - System Modeling - Information.
Software IMprovement using Product LinEs Project Presentation (III) - Implementation Liana Lisboa – PM Project: Starship.
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
Software Life Cycle Model
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
What is Business Analysis Planning & Monitoring?
System Design Chapter 8. Objectives  Understand the verification and validation of the analysis models.  Understand the transition from analysis to.
S/W Project Management
FINAL DEMO Apollo Crew, group 3 T SW Development Project.
Lesson 7 Guide for Software Design Description (SDD)
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Test Organization and Management
Describing Methodologies PART II Rapid Application Development*
Computers Are Your Future Eleventh Edition Chapter 13: Systems Analysis & Design Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall1.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Putting together a complete system Chapter 10. Overview  Design a modest but complete system  A collection of objects work together to solve a problem.
Chapter 10 Information Systems Analysis and Design
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Approaching a Problem Where do we start? How do we proceed?
Copyright 2002 Prentice-Hall, Inc. 1.1 Modern Systems Analysis and Design Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 1 The Systems Development.
T Final demo I2 Iteration Agenda  Product presentation (20 min) ‏  Project close-up (20 min) ‏ Evaluation of the results  Questions.
Chapter 5 Models and UML Notation for The Object-Oriented Approach.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
GRASP: Designing Objects with Responsibilities
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
PRJ566 Project Planning & Management Software Architecture.
THE POSTMORTEM Chapter 10 Introduction to Team Software Process.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Software architecture is the high- level structure of a software system. It has no concrete definition but can be best described as an organizational.
Company LOGO. Company LOGO PE, PMP, PgMP, PME, MCT, PRINCE2 Practitioner.
Elaboration popo.
Chapter 15 Finalizing Design Specifications
Chapter 15 Finalizing Design Specifications
Unified Modeling Language
Engineering Processes
Introduction to Software Testing
Chapter 15 Finalizing Design Specifications
Project Management Process Groups
DOD’S PHASED SYSTEM DEVELOPMENT PROCESS
PSS verification and validation
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
FloDesign Wind Turbine Denmark ApS
Presentation transcript:

Software IMprovement using Product LinEs Project Final Presentation Liana Lisboa – PM Project: Starship

2 Summary SIMPLE Factory Domain Analysis Phase Architecture Design Phase Implementation Phase Testing Project Metrics Project Strong and Weak Points Project Learned Lessons Improvement

3 SIMPLE Factory The factory started with 7 members and an collaborator, and ended up with one member less. MembersJobs Liana BarachisioProject Management (PM)/ Domain Analyst Fernando RaposoDomain Analyst/ Tests Engineer Leandro Marques do Nascimento Architect (ARQ) Alexandre MartinsQuality Analyst (SQA)/ Architect (ARQ) Aline TimóteoQuality Analyst (SQA) Rodrigo Cavalcante MendesConfiguration Management/ Architect (ARQ) Fred DurãoDeveloper/Consultant/PM

4 Domain Analysis Phase Artifacts  Feature Model  Feature Matrix  Domain Requirements  Doman Use Case

5 Domain Analysis Phase Feature Model  Changes occurred during the design and implementation phases.  These changes reflected redundancy in the model (the implication relationships) and improvement of the relationships.

6 Domain Analysis Phase Feature model before design and implementation made in Requiline

7 Domain Analysis Phase Feature model after design and implementation made in Requiline

8 Domain Analysis ActivitiesFollowed Identification of existing, future and potential applications X Identification of domain features X Evaluation functions X Domain modeling X Features and domain documentation X Domain requirements based on the features X Domain use cases based on the features X Process Evidence

9 Domain Analysis Phase Feature matrix – no changes Domain requirements – no changes Domain use cases – Its was further detailed with the inclusion of “alternative fluxes” during the design phase

10 Domain Analysis Phase Learned Lessons  Necessity of a domain expert for the identification of the features;  Inclusion of the domain requirement documentation improved the documentation of the domain;  Feature documentation could become extremely complex as the domain grows, although its is helpful to identify if the feature is really a part of the domain;

11 Project Metrics Domain Analysis Phase

12 Design Phase Artifacts  Domain Architecture  Feature Dependency Matrix  Component Specification  Evidence Document

13 Design Phase Domain architecture definition  GRASP Patterns  Gamma Patterns  Component Grouping

14 Design Phase Components identified before the implementation phase  Game Presentation  Game Core  Audio  Display  End Game  High Score  Configuration  Collision  Screen Control

15 Design Phase Problems identified in the component division  The “component grouping” put together the majority of the domain variability  The components were too connected

16 Design Phase Components division – second round  Audio  Actions  Entity  Event  Graphic  Movement

17 Design Phase Modifications  Game Core divided in: Entity Movement Actions Event  Audio and Configuration put together in: Audio  Game Presentation and Display became: Graphic  Collision is now part of Event

18 Design Phase Components division – third round  Movement were further divided in: Movement Strategy -> The movement strategy for the enemies

19 Design Phase Component Specification -> updated according to the new components Feature Dependency Matrix -> Was left aside in the new components division Evidence Document -> no changes

20 Design Phase Process Evidence ActivitiesFollowed Module decompositionX Module refinementX Variability representationX Component grouping* Component IdentificationX Component SpecificationX Domain Architecture Representation

21 Design Phase Learned Lessons  Each component has to be a unique kind of variability;  The components have to be “self-contained”

22 Project Metrics Design Phase

23 Implementation Phase Components implemented usually with java and latter with OSGi The implemented components with and without OSGi:  Audio  Graphic  Movement  Strategies  Core -> application that can be extended

24 Implementation Phase DEMONSTRATION!!

25 Implementation Phase How variability was implemented? Optional – with the Builder Pattern Or-feature -> with the Strategy Pattern

26 Implementation Phase - Testing Issues: 16 issues reported on issue tracker;  Some Issues: No documentation (Javadoc, component description); Components assigned as High and Medium not implemented; No exception handling; It is not hard to validate a component contract if you have:  Proper component specification;  A process to validate then;  Tools to support the activity.

27 Implementation Phase - Testing Conclusion  It is hard to create automated tests for components that have basically user interaction (i.e. audio, image quality...)  Ideally, the component must come with a test bed for anyone who wants to see if that component fulfills its own acceptance criteria.  It is possible to test components!

28 Implementation Phase Learned Lessons  To create the OSGI services from the self-contained components, it is necessary a minimum documentation Main test Classes Component Documentation of Use  It is strongly recommended the presence of the component developer in the first phases of OSGI creation  It is strongly recommended the presence a technical leader to get the wide angle view of implementation activities Avoid necklaces and dependencies Improve the communication among distant developers

29 Implementation Phase Learned Lessons (cont.)  The developers must be physically together (or at least virtually together) in the initial and during critical phases of development Distributed implementation in these phases are a risk to the project schedule

30 Traceability

31 Project Metrics Implementation Phase – Construction #1

32 Project Metrics Implementation Phase – Construction #2

33 Project Metrics Implementation Phase – Construction #3

34 Project Metrics Closing Phase

35 Project Metrics General View

36 Project Strong and Weak Points Strong Points  Coherent and well defined division of the activities in the Domain Analysis Process;  Software Architect experience in Games Domain;  Reuse of information from other teams and areas;  Team commitment at the beginning of the project; Weak Points  The process for the design phase was not very easy to understand;  It is strange that one of the most important documents for the design phase is the use case document since it is not part of the domain analysis process proposed;  Team lack of commitment in the final phase;  Lack of experience of the team with SPL;

37 Learned Lessons The domain expert is necessary specially in the domain analysis and design phases; The requirements and use cases should describe the common {how they are common to the domain} and an overview of the variability, and should not describe specifically functions {in our case, “play game” should not exist}; The architecture must be planned to the technology that it will be developed.

38 Improvements Include the domain analysis documents to the process and set its relations; Define the metric for the DA phase, and which evaluation functions should be considered to define the domain scope and how it influences the DA; Clarify that features beside the ones extracted from the analyzed documentation can be included in the domain; The phases should be more connected. Like in the DA process there is no mention of the use case document that is necessary for the design phase, which does not consider the technology to be used in the implementation phase;

39 Improvements The architecture classes should be defined after the components identification, so that each components architecture can be more isolated; Using the OSGi as the implementation technology, it would be interesting that each variability could be implemented as a service and its component would verify if the service is available or not. That way, the variability change in the application would be dynamic.