System development

Ace your homework & exams now with Quizwiz!

Principles of XP

- Communication: good to talk with customer and between developers - Simplicity: keep it simple and grow the system when required - Feedback: let users provide feedback early and often - Courage: speak the truth - Respect

Types of Prototypes

*Evolutionary*: Continue to build on *Throwaway*: Destroy when done using

Scrum

The most common framework for Agile Development - small teams to produce small pieces of deliverable in sprint cycles

Product Owner (Scrum)

The person responsible for the business value of the project and decide what work to do and in what order

Inspect & Adapt (I&A)

The Inspect and Adapt (I&A) is a significant event, held at the end of each Program Increment (PI), where the current state of the Solution is demonstrated and evaluated by the train. Teams then reflect and identify improvement backlog items.

DevOps

The practice of blending the tasks performed by the development and IT operations groups to enable faster and more reliable software releases.

MDA - Model driven architecture

an approach to use platform-independent models in software design, development, and implementation

requirement specification document

used as a blueprint for further SDLC phases

visual model

representation of an object using graphical languages

Advantages of the waterfall model

- The model is simple to understand and use. And thus, works well for small projects - Easy to manage as it has well-defined stages

Spiral Model

- a combination of waterfall and phased models with the application of prototypes - 4 defined quadrants: planning, risk analysis, constructing, and evaluating -each loop in the spiral represents a phase in the SDLC process: the innermost is for requirement gathering and analysis, and so on.

PI Planning

- an event to align all the teams on the ART to a shared mission and Vision. - 2 days every 8-12 wks.

problems of agile

- difficult to keep up with customers' various interests -prioritizing changes can be difficult when multiple stakeholders -maintain simplicity may request extra work -Scalability

Disadvantages of XP

- high costs -high time investing -no proper documentation is delivered constantly -requires team members to be self-disciplined

Disadvantages of iterative model

- requirements may be changed over and over again, and thus, can cause over time and budget -not suitable for small projects

Features of Agile Development

- very little planning at the beginning, only rough sketches, very short development cycles with few artifacts -The requirements, design, and product will be gradually emerged as the project proceeds

Heartbeat of ART

-Agile teams -Dedicated people -Face-to-Face PI planning -Inspect and Adapt Event

principles of agile development

-Customer involvement -Incremental delivery -People not process -Embrace change -Maintain simplicity

Advantages of RUP

-Early mitigation of risk -Early executable architecture -Able to control allocation of resources by phase -Increase the precision of cost estimation

Advantages of the spiral model

-Easy to manage - software produced at an early stage so problems and issues identified early - The user gives feedback on each prototype. so required changes can be made early - New Functionality can be added during the process - End result is more likely to be what the user wants

Disadvantages of the spiral model

-Time consuming -More costly to develop -Not suitable for smaller projects

Advantages of XP

-communication b/w developers - high level of productivity - high-quality code

Advantages of Scrum

-daily standups -quickly identify setbacks and recover -frequent releases -increase customer involvement

Disadvantages of the waterfall model

-difficult to accommodate changes, and thus, high amount of risks and uncertainty -no working software is created until late in the cycle -long delivery cycle for larger projects

advantages of incremental model

-faster to get feedback -more rapid delivery and deployment of useful software -risk of changed requirements is reduced

basics of software development process

-lifecycle (phases & milestones) -workflows (disciplines) -roles (skills, responsibilities) -activities/tasks -work products / artifacts (deliverables or WIP products)

Advantages of iterative model

-parallel development can be planned -detects the risks, faults, and defects at early stage

disadvantages of incremental model

-process is not visible. Thus, it is cost effective to work on many deliverables for the manager to measure the progress -a proper planning is required at the early stage -regular changes may corrupt the current structure / degrade the current system

Disadvantages of Scrum

-uncertainty in final deadline and product scope -Scalability -requires for experienced teams

3 Phases of Scrum

1) The initial phase - outline planning phase: establish the general objectives for the project and design the software architecture. 2)Followed by a series of sprint cycles, where each cycle develops an increment of the system. 3)The project closure phase - completes required documentation and wraps up the project

Five Core Competencies of the Lean Enterprise to sustain a competitive advantage

1. Lean-Agile Leadership 2. Team and Technical Agility 3. DevOps and Release on Demand 4. Business Solutions and Lean Systems 5. Lean Portfolio Management

Essential attributes of good software

1. Maintainability 2. Dependability and Security 3. Efficiency 4. Acceptability

Need for a digital business operating system

1. More rapid and flexible software development 2. Ecosystems need to be considered along 3. Generate and realize data for AI solutions, empowerment and autonomy

key challenges of software engineering

1. increasing diversity 2. increasing demands in shorter delivery cycles 3. trustworthy issues

software development process

= engineering + software project management

Scaled Agile Framework (SAFe)

A Lean-Agile scaling framework that combines concepts from Kanban, Scrum, Extreme Programming (XP), DevOps, etc. to apply to enterprise level

lean enterprise

A business that produces products or services with high quality, low cost, fast response, and immediate availability using lean principles.

Lean-Agile Leadership

A competency which describes how Lean-Agile Leaders drive and sustain organizational change and operational excellence by empowering individuals and teams to reach their highest potential.

Business Solutions and Lean Systems Engineering

A competency which describes how to apply Lean-Agile principles and practices to the specification, development, deployment, and evolution of large, complex software applications and cyber-physical systems.

software engineering (SE)

A discipline related to the design, development, testing, maintenance, and evolution of a computer-based software

Extreme Programming (XP)

A form of agile software development that promotes incremental development of a system using short development cycles to improve productivity and to accommodate new customer requirements.

Agile Release Train (ART)

A long-lived and cross-functional Agile-teams, which along with other stakeholders, develops and delivers solutions incrementally, using a series of fixed-length Iterations within a Program Increment (PI) timebox, in order to align teams to a common business and technology mission.

Scrum Master

A person who ensures that the team is productive, facilitates the daily Scrum, enables close cooperation across all roles and functions, and removes barriers that prevent the team from being effective

SAFe for Lean Enterprises

A scalable and configurable framework that helps organizations deliver new products, services, and solutions in the shortest sustainable lead time, with the best possible quality and value

process

A series of actions or steps taken to achieve a goal

Ecosystem

A system formed by the interaction of a community of organisms with their physical environment

Rational Unified Process (RUP)

An iterative software development process that is organized by phases and milestones, intended to be tailored by the development for their needs

Iterative Model

A type of program development cycle in which a basic version of required functions, and then enhance them after receiving feedback

differences between computer science and software engineering

CS focuses on the theory and the fundamental of computational process SE focuses on the development and delivery of a software

Non-functional requirements

Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc.

requirements definition document

Contains the final set of business requirements, prioritized in order of business importance

Scalability

How well a system can scale up, or adapt to the increased demands of growth

Agile Teams

In SAFe, an Agile team is a cross-functional group of 5-11 individuals who define, build, test, and deliver an increment of value in a short time box.

Phases of RUP

Inception, Elaboration, Construction, Transition

Phased Model

Incremental model and Iterative model

Continous Integration

Merging developer updates continuously (daily) to avoid integration challenges

Conceptual Design

Overview of the system on its functions, independent from hardware or software choices

Abstraction

Reducing information and detail to focus on essential characteristics.

Continuous Delivery Pipeline

Represents the workflows and activities needed to shepherd a new piece of functionality from ideation to an on- demand release of value to the end user: Continuous Exploration, Continuous Integration, Continuous Deployment, Release on Demand

User Stories (structured natural language)

Short descriptions written by customers of what they need a system to do for them

system requirements

Specifications for the processor speed, RAM, hard drive space, and any additional hardware or software needed to run the software.

Release on Demand

The process that deploys new functionality into production and releases it immediately or incrementally to customers based on demand.

Modularity

The separation of a program into independent modules that are each responsible for one aspect of the program's functionality.

Conceptual Modeling (non-natural language)

UML diagrams which are helpful to establish a common ground for communication between users and developers.

Practices of XP

`The planning game • Simple design • Small releases • Pair programming • Test-driven development • Collective code ownership • Continuous integration

Lean Portfolio Management (LPM)

a competency of aligning strategy and execution by applying Lean and systems thinking approaches to strategy and investment funding, etc

Iterative Design Process

a cycle of sampling, testing, analyzing and refining a design until the final design is created

UML diagram

a language for visualizing, specifying, constructing, and documenting the artifacts of a system

requirement

a system property that is what is needed or wanted by a stakeholder

Kanban

a visual information system that controls the flow of work

Software Development Life Cycle

an iterative approach to developing software, including major steps are: 1. gathering requirements 2. requirement analysis 3. design 4. code and implementation 5. test 6. deployment 7. maintenance and evolution

Elaboration phase - Lifecycle architecture (LCA)

analyze the problem domain, establish a architectural foundation, develop the project plan, and eliminate the highest risk elements

risk analysis

build the prototypes to analyze the requirements and risks

Prototyping Requirements

by creating a prototype, it is easier to learn more about a problem or proposed solution, gather more accurate requirements and obtain feedback

continous deployment

releasing products when ready rather than on longer, pre-set distribution cycles

DevOps and Release on Demand

competency describes how implementing DevOps and a continuous delivery pipeline provides the enterprise with the capability to release value, in whole or in part, at any time necessary to meet market and customer demand.

System Engineering

concerned with all aspects of computer-based systems development including hardware, software and process engineering. So, software engineering is a part of system engineering

Inception Phase - lifecycle objectives (LCO) is the milestone

define system goals, determine project scope, assess feasibility of project

System Design

describes how the new system will provide a solution to the business problem

Team and Technical Agility

describes the critical skills and Lean-Agile principles and practices that agile teams use to create high-quality solutions for their customers.

planning phase

develop and document the software requirement specification

constructing

develop the system

Platform-independent models

document the functionality and behavior of an application separate from technology-specific platform that supports it

evaluation

evaluate the developed system and plan for the next iteration

Construction Phase - Initial operational capability

focuses on program and application development tasks

Agile Methodology

follows iterative approach to demonstrate a commitment to tight feedback cycles and continuous improvement

Decomposition

from high-level depiction of key elements and create lower levels of detailed features and functions

User Requirements

identifying business requirements the system must satisfy which is provided by users.

Requirement Traceability

links requirements from definition and trace them throughout the project life cycle

incremental model

slices the software product into smaller pieces, and each new increment builds on top of the existing released functionality

4 system engineering activities

system specification system development system validation system evolution

Functional Requirements

the activities the system must perform to support the users' work

Coupling

the degree of interdependence (connections) between modules/components — Inter-module binding; for a good system design, we would like to have as low as coupling as possible

Cohesion

the degree to which the elements inside a module functionally related — Intra-module binding; for a good system design, we would like as high cohesion as possible

Continuous Exploration

the process of continually exploring the market and user needs, and defining a Vision, Roadmap, and set of Features that address those needs.

waterfall model (SDLC)

the traditional system development method that depicts the processes in a linear sequential flow. Any phase can only begin when the previous phase is completed. No iteration is possible

Digitalizaiton

the use of digital technology to provide software support to products and services which were not supported in the past; it is and will continue disrupting the industry and society

Process Management

to make sure a direct correspondence between requirements definition and specification

Requirement verification

whether the software meets specifications --> do we build the right system?

Requirement Validation

whether the software meets the definition -> do we build the system right?


Related study sets

ECO 202 Exam One Multiple-Choice NVCC

View Set

B & G Chptr 4. Equipment for General use.

View Set

Epidemiology Measures of Morbidity and Mortality

View Set

Chapter 7: Thinking and Intelligence

View Set

Combo AP Biology Final Exam Review Study Guide

View Set

health aseessment random questions review

View Set

Folds, Faults, Earthqquakes and Volcanoes

View Set