Systems Analysis and Design in a Changing World, Fourth Edition

Slides:



Advertisements
Similar presentations
Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Systems Analysis and Design in a Changing World, Fourth Edition
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Chapter 13 Current Trends in System Development
17 Systems Analysis and Design in a Changing World, Fifth Edition.
Object Oriented System Development with VB .NET
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Iterative development and The Unified process
COMP 350: Object Oriented Analysis and Design Lecture 2
Chapter 9: Moving to Design
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
16 Systems Analysis and Design in a Changing World, Fourth Edition.
Chapter 1 The Systems Development Environment
Deployment Activities to make a new system operational
CIS 321—IS Analysis & Design
Chapter 2: Approaches to System Development
UML - Development Process 1 Software Development Process Using UML (2)
Chapter 17 Current Trends in System Development
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
2 Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the Agile Development philosophy  List and describe the features.
Chapter 17: Current Trends in System Development
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Chapter 1 The Systems Development Environment
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Current Trends in Systems Develpment
Satzinger Chp. 2 Part Part 4 of 4 2 Object-Oriented Analysis and Design with the Unified Process Testing Testing is critical discipline Testing activities.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Iterative development and The Unified process Chapter 2 Applying UML and Patterns -Craig Larman.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
9 Systems Analysis and Design in a Changing World, Fourth Edition.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Embedded Systems Software Engineering
Approaches to Systems Development
Iterative development and The Unified process
TK2023 Object-Oriented Software Engineering
Software Development.
Process 4 Hours.
Systems Analysis and Design in a Changing World, Fifth Edition
Methodologies and Algorithms
Appendix B Agile Methodologies
Chapter 1: Introduction to Systems Analysis and Design
Chapter 1: Introduction to Systems Analysis and Design
Information Technology Project Management – Fifth Edition
Chapter 2: The Project Management and Information Technology Context
Systems Analysis – ITEC 3155 Evaluating Alternatives for Requirements, Environment, and Implementation.
Approaches to Systems Development
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4th Edition.
System DEVELOPMENT LIFE CYCLE MODELS
Chapter 20 Object-Oriented Analysis and Design
Software engineering -1
Chapter 1: Introduction to Systems Analysis and Design
Systems Analysis and Design in a Changing World, 6th Edition
Appendix B Agile Methodologies
Agile software development
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Chapter 1: Introduction to Systems Analysis and Design
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

Systems Analysis and Design in a Changing World, Fourth Edition

Learning Objectives Explain the foundations for the adaptive methodologies to development List and describe the features of the Unified Process system development methodology List and describe the features of Agile Modeling Describe the features of Extreme Programming . Explain the importance of Model-Driven Architecture on enterprise-level development Describe frameworks and components, the process by which they are developed, and their impact on system development Systems Analysis and Design in a Changing World, 4th Edition

Overview The IS discipline is dynamic and always changing More complex system requirements have necessitated a whole new set of tools IS professionals are also creating a new techniques and methodologies for building systems. The Unified Process (UP) Radical, adaptive approaches, including Agile Development, Extreme Programming. Object frameworks and components to increase productivity and quality Systems Analysis and Design in a Changing World, 4th Edition

Software Principles and Practices Ubiquitous computing: is the current trend in our society Using computer technology in every aspect of our lives The effort to develop current solutions is demanding No single solution or technology can satisfy all needs. What have you learned so far ???? Current trends in modeling and development processes use five important principles Abstraction, models and modeling, Pattern, Reuse, Methodologies Systems Analysis and Design in a Changing World, 4th Edition

Software Principles and Practices (continued) Abstraction Process of extracting core principles from a set of facts or statement Example: Metamodels describe the characteristics of another model Models and modeling An abstraction of something in the real world, representing a particular set of properties. Modeling help us to crystalize our thinking so that we are more precise. We use model to documents ideas that we need to remember. Systems Analysis and Design in a Changing World, 4th Edition

Software Principles and Practices (continued) Patterns Standard solutions to a given problem or templates that can be applied to a problem Reuse Building standard solutions and components that can be used over and over again ( to develop graphical user interface for the windows platforms, all developers use standard class libraries of forms, buttons, etc.) Methodologies A process—including the rules, guidelines, and techniques—that defines how systems are built and development project are managed.

Adaptive Approaches to Development Opposite end of spectrum from predictive approaches (recall Chapter 2) Allow for uncertainty Use empirical controls, not predictive controls Describe processes that are variable and unpredictable Monitor progress and make corrections on the fly, based on specific situation. Because many software development projects contain a high a mount of uncertainty, an empirical process might be a better choice for them. Systems Analysis and Design in a Changing World, 4th Edition

Adaptive Approaches to Development— Characteristics All adaptive methodologies use empirical controls and have their own rules and guidelines, however, they do share a few characteristics: Less emphasis on up-front analysis, design, and documentation More focus on incremental development More user involvement in project teams Reduced detailed planning Used for near-term work phases only Tightly control schedules by fitting work into discrete time boxes More use of small work teams that are self-organizing Systems Analysis and Design in a Changing World, 4th Edition

The Unified Process (UP) Object-oriented system development methodology (system development process) Offered by Rational/IBM, UP developed by Booch, Rumbaugh, and Jacobson, also, there are behind the success of UML. UP should be tailored to organizational and project needs Highly iterative approach to development (life cycle) Project will be use-case driven and modeled using UML Systems Analysis and Design in a Changing World, 4th Edition

The Unified Process Life Cycle UP life cycle Includes four phases which consist of iterations Iterations are “mini-projects” Inception – develop and refine system vision ( usually completed in one iteration). Elaboration – define and complete the requirements, design and implementation of the core architecture (involves several iterations). Construction – continue design and implementation of routine, less risky parts ( involves several iterations) Transition – move the system into operational mode ( one or more final iterations involve the final user acceptance and beta version) Systems Analysis and Design in a Changing World, 4th Edition

The Unified Process Life Cycle (Figure 16-1) Systems Analysis and Design in a Changing World, 4th Edition

UP Phases and Objectives (Figure 16-2) Systems Analysis and Design in a Changing World, 4th Edition

The UP Disciplines UP defines disciplines used within each phase Discipline – set of functionally related development activities Each iteration includes activities from all disciplines Activities in each discipline produce artifacts – models, documents, source code, and executable. Learning CIS/MIS means learning techniques from these disciplines Six main UP development disciplines Business modeling, requirements, design, implementation, testing, and deployment Three additional support disciplines Project management, configuration and change management, and environment

UP Disciplines Used in Varying Amounts in Each Iteration (Figure 16-3) Systems Analysis and Design in a Changing World, 4th Edition

UP Life Cycle Model Showing Phases, Iterations, and Disciplines (Figure 16-4) Systems Analysis and Design in a Changing World, 4th Edition

The Agile Development Philosophy and Modeling A philosophy and set of guidelines for developing software in an unknown, rapidly changing environment Requires agility – being able to change direction rapidly, even in the middle of a project Agile Modeling A philosophy about how to build models, some of which are formal and detailed and others are sketchy and minimal Systems Analysis and Design in a Changing World, 4th Edition

The Agile Development Philosophy and Values Responding to change over following a plan An agile project is chaordic which comes from two words chaos and ordered Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Systems Analysis and Design in a Changing World, 4th Edition

Adaptive Methodologies Using Agile Modeling (Figure 16-5) Systems Analysis and Design in a Changing World, 4th Edition

Agile Modeling Principles AM is about doing the right kind of modeling at the right level of detail for the right purposes Use models as a means to an end instead of building models as end deliverables Does not dictate which models to build or how formal to make those models Has basic principles to express the attitude that developers should have as they develop software Systems Analysis and Design in a Changing World, 4th Edition

Agile Modeling Principles (Figure 16-6) Systems Analysis and Design in a Changing World, 4th Edition

Agile Modeling Practices (Figure 16-7) Systems Analysis and Design in a Changing World, 4th Edition

Extreme Programming (XP) An adaptive, agile development methodology created in the mid-1990s XP is really an attempt to take the best practices of software development and extend them “ to the extreme”. Takes proven industry best practices and focuses on them intensely Combines those best practices (in their intense form) in a new way to produce a result that is greater than the sum of the parts Systems Analysis and Design in a Changing World, 4th Edition

XP Core Values Communication In open, frequent verbal discussions (One of the major causes of project failure has been a lack of open communications). Simplicity In designing and implementing solutions. Feedback On functionality and requirements ( from users), designs, and code ( from other developers) Courage In facing choices such as throwing away bad code or standing up to a too-tight schedule Systems Analysis and Design in a Changing World, 4th Edition

Some XP Practices Planning Users develop a set of stories to describe what the system needs to do. Involves two aspects: business issues (decided by the user and client) and technical issues( decided by the development team) Testing Tests are written before solutions are implemented (unit and acceptance testing). Pair programming Two programmers work together on designing, coding, and testing Simple designs It is one that accomplishes the desired result with a few classes and methods as possible without duplicate code

Some XP Practices (continued) Refactoring Improving code without changing what it does ( before and after adding any new functions, XP programmers review the code to see whether there are a simpler design or methods of achieving the same results. Owning the code collectively Anyone can modify any piece of code ( everyone is responsible for the code). Continuous integration Small pieces of code which passed the unit test are integrated into the system daily or more often System metaphor Guides members towards a vision of the system Systems Analysis and Design in a Changing World, 4th Edition

Some XP Practices (continued) On-site customer Intensive user/customer interaction required Small releases Produce small and frequent releases to user/customer Forty-hour work week Project should be managed to avoid burnout Coding standards Follow coding standards to ensure flexibility Systems Analysis and Design in a Changing World, 4th Edition

XP Core Values and Practices (Figure 16-8) Systems Analysis and Design in a Changing World, 4th Edition

XP Project Activities System-level activities Occur once during each development project Involve creating user stories to planning releases Release-level activities Cycle multiple times – once for each release Are developed and tested in a period of no more than a few weeks or months Iteration-level activities Code and test a specific functional subset in a few days or weeks Systems Analysis and Design in a Changing World, 4th Edition

XP Development Approach (Figure 16-9) Systems Analysis and Design in a Changing World, 4th Edition

Project Management and Adaptive Methodologies How project management changes for adaptive projects? Project time management Smaller scope and focused on each iteration Realistic work schedules Project scope management Users and clients are responsible for the scope Scope control consists of controlling the number of iterations. ---- Note ( Time and scope are always interdependent) Project cost management More difficult to predict because the complete project schedules is unknown

Project Management and Adaptive Methodologies (continued) Project communication management Users are heavily involved in all aspects of the project. Critical because of open verbal communication and collaborative work Project quality management Continual testing and refactoring must be scheduled Testing is conducted throughout the project. Time is allocated to refactor the system as it is built, so the resulting system is simple and solid. Project risk management High-risk aspects addressed in early iterations, as a result, the project team and client found out any obstacle that could seriously failed the project.

Project Management and Adaptive Methodologies (continued) Project human resource management Teams organize themselves for each iteration, so project managers are less tempted to take control in adaptive approach. Project procurement management Integrating purchased elements into the overall project Verifying quality of components Satisfying contractual commitments The adaptive and agile concepts that were just discussed focus on individual project within an organization. Systems Analysis and Design in a Changing World, 4th Edition

Object Frameworks A set of classes that are designed to be reused in a variety of programs The classes within an object framework are called foundation classes Can be organized into one or more inheritance hierarchies Application-specific classes can be derived from existing foundation classes Programmers then add or modify class attributes and methods to adopt a “generic” foundation class to the requirements of a specific application. Systems Analysis and Design in a Changing World, 4th Edition

Object Framework Types User-interface classes Commonly used objects within a GUI ( windows, menus, toolbars, etc.) Generic data structure classes Linked lists, binary trees, and so on, and related processing operations Relational database interface classes Classes that allow OO to create database tables, add data to a table, query data content of one or more table Classes specific to an application area For use in a specific industry or application type ( banking, shipping, inventory, etc.)

Impact on Design and Implementation Developers need to consider several issues to determine whether to use object frameworks. Frameworks must be chosen early in the project Systems design must conform to specific assumptions about application program structure and operation that the framework imposes Design and development personnel must be trained to use a framework effectively Multiple frameworks might be required, necessitating early compatibility and integration testing Systems Analysis and Design in a Changing World, 4th Edition

Components Software modules that are fully assembled and ready to use Reusable packages of executable code Have well-defined interfaces to connect them to clients or other components Public interfaces and encapsulated implementation Standardized and interchangeable software parts They differ from objects or classes because they are binary(executable program) , not symbolic ( source code). Think about grammar checking function Updating a single component does not require relinking, recompiling, and redistributing an entire application

Component Standards and Infrastructure Interoperability of components requires standards to be developed and readily available ( consider the video display of a typical IBM-compatible personal computer) Components might also require standard support infrastructure Software components have more flexibility when they can rely on standard infrastructure services to find other components Networking standards are required for components in different locations To address these issues, some organization have developed and continue to modify standards for component development and reuse. Systems Analysis and Design in a Changing World, 4th Edition

CORBA and COM+ CORBA (Common Object Request Broker Architecture) is a standard for software component connection and interaction developed by the OMG An object request broker (ORB) provides component directory and communication services The Internet Inter-ORB Protocol (IIOP) is used to communicate among objects and ORBs Component Object Model Plus (COM+) is a standard for software component connection and interaction developed by Microsoft. Systems Analysis and Design in a Changing World, 4th Edition

Enterprise JavaBeans Java is an OO programming language developed by sun microsystems. Part of the Java programming language’s extensive object framework (JDK, java development kit) which includes classes for GUIs, database manipulation and inter-networking. A JavaBean can execute on a server and communicate with clients and other components using CORBA A JavaBean implements the required component methods and follows the required naming conventions of the JavaBean standard Platform independent Systems Analysis and Design in a Changing World, 4th Edition

Components and the Development Life Cycle Component purchase and reuse is a viable approach to speeding completion of a system. Two development scenarios involve components: Purchased components can form all or part of a newly developed or re-implemented system Components can be designed in-house and deployed in a newly developed or re-implemented system Systems Analysis and Design in a Changing World, 4th Edition

Using Purchased Components— Implications Standards and support software of purchased components must become part of the technical requirements definition A component’s technical support requirements restrict the options considered during software architectural design Hardware and system software that provide component services must be acquired, installed and configured before testing begins. The components and their support infrastructure must be maintained after system development. Systems Analysis and Design in a Changing World, 4th Edition

Monitoring System Performance Steps developers should take to ensure adequate performance include the following: Examine component-based designs to estimate network traffic patterns and demands on computer hardware Examine existing server capacity and network infrastructure to determine their ability to accommodate communication among components Upgrade network and server capacity prior to development and testing Systems Analysis and Design in a Changing World, 4th Edition

Monitoring System Performance (continued) Test system performance during development and make any necessary adjustments Continuously monitor system performance after deployment to detect emerging problems Redeploy components, upgrade server capacity, and upgrade network capacity to reflect changing conditions Systems Analysis and Design in a Changing World, 4th Edition

Services New method of software reuse enabled by Internet—external services identified and used for applications Called Web services and service-oriented architecture (SOA) Microsoft .NET is service standard based on SOAP Java 2 Web Services (J2WS) is service standard for services in Java Systems Analysis and Design in a Changing World, 4th Edition

Component Communication Using SOAP (Figure 16-14) Systems Analysis and Design in a Changing World, 4th Edition

Summary Adaptive development methodologies Unified Process (UP) Agile Modeling and Agile Development Flexibility in an unpredictable business world Extreme Programming (XP) Tests are written first; programmers work in pairs Systems Analysis and Design in a Changing World, 4th Edition

Summary (continued) Software reuse is a fundamental approach to rapid development Object frameworks provide a means of reusing existing software through inheritance Components are units of reusable executable code that behave as distributed objects Systems Analysis and Design in a Changing World, 4th Edition