Notion of a Project Notes from OOSE Slides - modified.

Slides:



Advertisements
Similar presentations
Software Process Models
Advertisements

Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
The Role of Software Engineering Brief overview of relationship of SE to managing DSD risks 1.
1 / 24 CS 425/625 Software Engineering Software Evolution Based on Chapter 21 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8 th Ed., Addison-Wesley,
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Evolution Managing the processes of software system change
SWE Introduction to Software Engineering
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Copyright  Larry Dribin, Ph.D. SE470_EngFlows_v1.ppt SE470 EngFlows - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage.
Software evolution.
Software evolution.
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Introduction to Computer Technology
Software Evolution Planning CIS 376 Bruce R. Maxim UM-Dearborn.
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management 1.
S/W Project Management
Chapter 1: Software and Software Engineering
1 Building and Maintaining Information Systems. 2 Opening Case: Yahoo! Store Allows small businesses to create their own online store – No programming.
Systems Analysis and Design
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software change  Managing the processes of software system change.
1 Process Engineering A Systems Approach to Process Improvement Jeffrey L. Dutton Jacobs Sverdrup Advanced Systems Group Engineering Performance Improvement.
1M.Sc.(I.T.), VNSGU, Surat. Structured Analysis Focuses on what system or application is required to do. It does not state how the system should be implement.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Software Engineering Lecture 20 Software Maintenance.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
© Lethbridge/Laganière 2005 Chapter 1: Software and Software Engineering1 Warm Up Question: What do you think are the most important attributes of a piece.
111 Notion of a Project Notes from OOSE Slides – a different textbook used in the past Read/review carefully and understand.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering MCS-2 Lecture # 6
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Systems Analysis and Design in a Changing World, Fourth Edition
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering 1.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
Software Engineering Lecture # 1.
Software Development Life Cycle (SDLC)
第 11 組 MIS 報告. Phases of any information system ~ recognition of a business problem or opportunity ~ recognition of a business problem or opportunity.
CSCE 240 – Intro to Software Engineering Lecture 2.
IS444: Modern tools for applications development Dr. Azeddine Chikh.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
Object-Oriented Software Engineering Chapter 1 Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
SEG 3300: Sections A&B Introduction to Software Engineering Lecture 1: Software and Software Engineering Based on Presentations LLOSENG (Lethbridge, Laganiere,2001,
System Development Life Cycle (SDLC). Activities Common to Software Projects Planning : Principles Principle #1. Understand the scope of the project.
Software Engineering Session 2007/2008 Semester 1 Universiti Malaysia Perlis.
Software Engineering Session 2008/2009 Semester 1 University Malaysia Perlis Lecture 1.
 System Requirement Specification and System Planning.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Chapter 1: Software and Software Engineering The Nature of Software... Software is intangible  Hard to understand development effort Software.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
System Design, Implementation and Review
Fundamentals of Information Systems, Sixth Edition
The Development Process of Web Applications
Rational Unified Process (RUP)
Software life cycle models
Chapter 1: Software and Software Engineering
Chapter 1: Software and Software Engineering
Presentation transcript:

Notion of a Project Notes from OOSE Slides - modified

Software Engineering Projects ► Most projects are evolutionary or maintenance projects, involving work on legacy systems  Corrective projects: fixing defects  Adaptive projects: changing the system in response to changes in ► Operating system ► Database ► Rules and regulations  Enhancement projects: adding new features for users  Reengineering or perfective projects: changing the system internally so it is more maintainable

Software Engineering Projects ► ‘Green field’ projects  New development  The minority of projects

Software Engineering Projects ► Projects that involve building on a framework or a set of existing components.  The framework is an application that provides many features but is missing some important details (on purpose).  Such projects: ► Involve plugging together components that are:  Already developed.  Provide significant functionality. ► Benefit from reusing reliable software. ► Provide much of the same freedom to innovate found in green field development.

Activities Common to Software Projects... ► Requirements and specification  Includes ► Domain analysis ► Defining the problem ► Requirements gathering  Obtaining input from as many sources as possible ► Requirements analysis  Organizing the information ► Requirements specification  Writing detailed instructions about how the software should behave

Activities Common to Software Projects... ► Design  Deciding how the requirements should be implemented, using the available technology  Includes: ► Systems engineering: Deciding what should be in hardware and what in software ► Software architecture: Dividing the system into subsystems and deciding how the subsystems will interact ► Detailed design of the internals of a subsystem ► User interface design ► Design of databases

Activities Common to Software Projects (continued) ► Modeling  Creating representations of the domain or the software ► Use case modeling ► Structural modeling ► Dynamic and behavioral modeling ► Programming ► Quality assurance  Reviews and inspections  Testing ► Deployment ► Managing the process

Difficulties and Risks in Software Engineering ► Risk Analysis is a key feature in all software development projects. ► Everything we do or change, such as new technologies, new requirements, new personnel, ALL have associated risk and need to be assessed. ► Risk must be addressed: mitigated, accepted, out-sourced, but not ignored!

Difficulties and Risks in Software Engineering Difficulties and Risks in Software Engineering ► Complexity and large numbers of details  A major concern as features are ‘added.’  Design for flexibility by ensuring the software architecture has identified subsystems, etc.  Keep it simple and be careful about accepting change. Are they really necessary? ► Uncertainty about technology  Use proven technologies; try out new technologies by prototyping

► Uncertainty about requirements  Attempt to understand the application domain as completely as possible in order to communicate with clients and other users.  Prototype to get good feedback on potential problems.  Expect change; design with change in mind.  Encourage user involvement. ► Uncertainty about software engineering skills  Ensure people are trained in the technologies!!!  Provide mentoring from senior developers ►

► Constant change  Both technology and requirements will change!  Try to distinguish the really important changes from those lesser ► Deterioration of software design  Design can become horrible from successive changes if not built for flexibility and change.  Approach Change with respect but with caution. Be certain to understand the change. ► Political risks  Will be difficult to satisfy everyone.  Try to promote the products.  Recognize how the system will affect all stakeholders. ► Above all, have fun!