Intro to software Engineer

Ace your homework & exams now with Quizwiz!

Rapid Prototyping (Process)

Work in manageable modules Build it rapidly Modify the prototype in successive iterations Stress the user interface

Pro-type Model

a protype is a partial implementation of the final product

Quality Planning

Decide the procedures to a specific project.

Each architectural style supports some quality features.

...

Software Sizing

Lines of Code (LOC) Function Points (FP)

repeatable

Focuses on basic project management

Slack Time

Slack Time = (LS - ES)

General Model

Effort = [a + (b * ((Size)**c))] * [PROD(f's)]

optimizing.

Focuses on continuous process improvement

Iterative Development Process Model

It combines pro-typing with the waterfall

Quality Assurance Managers

Quality assurance, planning , and control

Software Design Specification

From the SDD, the system is then implemented using programming language/s, which is followed by debugging, testing, and maintenance.

Expected task time (e-t-t)

(optimistic-time + 4*most-likely-time + pessimistic-time)/6

As the description of software construction structure, an architectural design must cover the software functional requirements and non-functional requirements as well.

...

Each style represents a layout topology of elements, and connections and interactions among these.

...

It shows how the system is structured in terms of components, and how its components work together.

...

Quality attributes are closely related to architectural styles.

...

The architectural design embodies earliest decisions that have a decisive impact on the ultimate success of the software product.

...

TSP objectives (as defined by Humphry:)

1. Build self-directed teams that plan and track their work, establish goals, and own their processes and plans. 2. Show managers how to coach and motivate their teams and how to help them sustain peak performance. 3. Accelerate software process improvement by making CMM Level-5 behavior normal and expected. 4. Provide improvement guidance to high-maturity organizations. 5. Facilitate university teaching of industrial-grade team skills.

Software architect's tasks

1.Perform system static partitioning and decomposition into sub-systems and communications between sub-systems. 2.Establish dynamic control relationships between different sub-systems in terms of data flow, or control flow orchestration, or message dispatching. 3.Consider and evaluate alternative architecture styles for the problem at hand. 4.Perform trade-off analysis on quality attributes and other non-functional requirements during the selection of architecture styles. 5.Map the software requirements specification to the software architecture and guarantee that the software architecture satisfies functional and non-functional requirements (very important task).

General Description

2. General Description Product Perspective Product Functions User Characteristics General Constraints Assumptions

Specific Requirements

3. Specific Requirements 3.1 Functional Requirements 3.1.1Functional Requirements 1 Specification Introduction Inputs Processing Outputs External Interfaces User Interfaces Hardware Interfaces Software Interfaces Communication Interfaces 3.1.2Functional Requirements 2 . . 3.1.n Functional Requirements n 3.2 Performance Requirements 3.3 Design Constrains 3.4 Attributes 3.4.1 Security 3.4.2 Maintainability . . . 3.5 Other Requirements Database Operations Site Adaption

Software process

A framework of task needed to complete a high quality software.

FUNCTIONAL REQUIREMENTS

A functional requirement describes an interaction between the system and its environment, and how the system should behave under certain circumstances. For example consider Self-Registration system Allow eligible students to register for courses

MODULES

A module is a system component that provides one or more services to other modules.

NONFUNCTIONAL REQUIREMENTS

A nonfunctional requirement (or constraint) describes a restriction on the system.

What is a Requirement?

A requirement is a feature of the system or a description of something the system is capable of doing in order to fulfill the system's purpose.

SUB-SYSTEMS

A system in its own right whose operation does not depend on the services provided by other sub-systems.

Rapid Prototyping

A working model that is functionally equivalent to a subset of the product.

Process of training

All personal must be trained in order to the job.

Activities/Tasks

An activity/task is a part of the project that takes place over a period of time.

SUB-SYSTEMS

Are composed of modules and have defined interfaces which are used for communication with other sub-systems.

Maintenance

Are enhancements needed? After the product is delivered, we need to follow up and find out if any improvements or enhancements are needed.

Delivery

Can the customer use the solution? Here we have to make sure that the customer can use the product. We may need to help with training, product installation, etc.

Inital

Chaotic-unpredictable cost, schedule, and quality performance.

The PSP process

Consists of a set of methods, forms, and scripts that show software engineers how to plan, measure, and manage their work.

SRS - IEEE Standard

Consists of three sections Introduction General Description Specific Requirements

Requirements Priorities

Current user/customer demands or needs Competition and current market condition Anticipated future and new customer needs Sales advantages Critical problems in existing product

Software Design

Design is the creative process of transforming the problem into a solution.

Parameters of Activities

Duration Number of days that it takes to complete the activity Milestone Completion of an activity Predecessor An event (or a set of events) that must occur before the activity can begin Due date The date by which the activity must be completed

Architectural Design

During the architectural design step we describe user accessible components and the interconnections among them that are visible to stakeholders.

Detailed Design

During the detailed design step we specify the internal details of each component and we might introduce new invisible components - to the stakeholder, into the design.

Function Point (FP) = Initial FP x TCF

Effort = A * B * (size ** C)

Quality Assurance

Establishes the procedures standards that lead to high quality software.

defined

Focuses on process standardization.

managed,

Focuses on quantitative management.

Software Design

Here (software design phase) we concentrate on HOW to do it.

Design

How is the software going to be structured? What are the components (Modules) How are these components related

Program Implementation

How is the solution constructed? Here we do the actual coding. Algorithms, charts, etc. are converted to programs.

The PSP shows engineers

How to manage quality from the beginning of the job, How to analyze the results of each job, and How to use the results to improve the process for the next project

View Oriented Requirements Definition (VORD) is based on the concept that requirements are viewed differently by different people

Identify stakeholders and their viewpoints of the requirements Categorize the viewpoints of requirements and eliminate any duplication Refine the identified viewpoints of requirements Map the viewpoints of requirements to the system and the services that the system must provide

Capability mature model

Initial, repeatable, defined, managed, optimizing.

Information Collection

Interview Questionnaire

Introduction

Introduction Purpose Scope Definition, Acronyms, or Abbreviations References Overview

Testing

Is the problem solved? Here we make sure that every program is working, and they also work together correctly and produce correct results (as expected from the product.)

Process Model

It is a description of what tasks need to be done in what sequence under what conditions by whom to achieve the "desired results."

spiral model

It is based on experience of various refinements of the waterfall model. applied to large governmental systems.

MODULES

It makes use of services provided by other modules. It is not normally considered to be an independent system.

Process monitoring and enforcement

Make sure all personal is following the process.

Quality control

Make sure the procedures are being followed by the developing team.

Requirements Prioritization

Most of the time we have limitations of : Time Resources Technical capabilities

Requirements Definition/Prototyping/Review

Once the requirements are solicited, analyzed and prioritized, more details must be spelled out. Three major activities which may be intertwined must be performed: Requirements definition Requirements prototyping Requirements reviewing

COCOMO I

Organic : less complex and flexible process Semidetached : average project Embedded : complex, real-time defense projects

Quality Attributes

Performance Reliability Portability Usability Security Testability Modifiability Etc.

Process Models

Personal Software Process (PSP) Team Software Process (TSP)

Aspects of process

Process of definition, Process of training, Process monitoring and enforcement.

Why have a process Model?

Provides coordination and control of task and personnel.

Information Sought

Reactions Suggestions Innovations Revision plans

SDLC (Software Development Life-Cycle) Waterfall Model

Requirements Analysis System design Program Design Program Implementation Testing Delivery Maintenance

Requirements Analysis

Requirements analysis is composed of: Categorizing the requirements Prioritizing the requirements

Characteristics of "good" requirements

Requirements must be CORRECT=They should conform to our understanding of the problem. Requirements must be COMPLETE=All scenarios must be considered or requirements are not complete. Requirements must be CONSISTENT=Requirements should not conflict. Requirements must be REALISTIC=Can they really be done? Requirements must be VERIFIABLE=Once project done, we should be able to prove that they are satisfied. Requirements must be NEEDED=Are they really needed (the customer's needs?) Requirements must be TRACEABLE=Are they organized for easy reference?

Requirements Comparison and Prioritization

Requirements prioritization is an activity of comparing the requirements and placing them in some order relative to each other.

Software Quality attributes

Security, safety, complexity, efficiency

Requirements definitions may be written in different forms:

Simple Input/process/output descriptions in English Dataflow diagrams (DFD) Entity Relations diagrams (ERD) Use Case Diagram from Unified Modeling Language (UML)

Software Design

Software Product Design Software Engineering Design

SOFTWARE ARCHITECTURE

Software architects use various design strategies in software construction to divide and conquer the complexities of a problem domain and solve the problem.

What do software engineer do?

Software engineers use tools, techniques, procedures, and paradigms to enhance the quality of software.

Synthesis

Takes smaller problems and combine them to solve a big problem.

analysis

Takes the problem and separate into smaller problems.

Software Design Specification

The SDD describes the components of a system, the modules that comprise each component, and the detailed information (such as data, attributes, operations, and algorithms) of each module.

Software Design Specification

The SDS (SDD) describes the software architecture or high-level design and the detailed design of the system.

Software Requirements Specification

The SRS is the result of requirement analysis; it records the functional and non-functional requirements that must be met by the software system.

Software Architecture: Bridging Requirements and Implementation

The actual design is a blueprint and a guideline for developing a software system based on the software requirement analysis specification.

Team Software Process (TSP)

The goal is to create a "self directed" project development team well organized for the development of high quality software.

The PSP Principle

The principle behind the PSP is that to produce quality software systems. (every engineer who works on the system must do quality work)

The mode of the project is chosen based on 8 parameters

The team's understanding of the project objectives The team's experience with related projects. The project needs to conform with requirements. The project needs to conform with external interfaces. The need to develop the project concurrently with new systems/new operational procedures. The project's need for new technology, architecture, etc. The project's need to meet the schedule. Project size

Planning and Managing the Project

Two major components: Estimating Completion/duration of the project Estimating the cost

Process of developing

Understand the problem,perform some design, code/implement, validate/test the program.

Requirements prototyping mostly address the User Interface (UI) part of the requirement in terms of:

Visual looks (size, shape, position, color) Flow (control and logical flow)

Program Design

What are the mechanisms that best implement the solution? We already know what the problem is, and we also have a good solution. Here we have to figure out mechanisms (e.g., algorithms) that best implement the solution.

Requirements Analysis

What is the problem? Here we have to carefully define the problem. We need to know what must be done, rather than how to do it.

System design

What is the solution? Here we have to find a "good" solution to the problem.

Information Sought

When you show (run) your model watch for reactions (of customer, users, etc.) Are they Happy? Satisfied? Shocked? Surprised? ?

Waterfall Model

encourages the development team to specify what needs to be done first

Function Point (FP)

input items (external input items from user or another application) output items (external outputs such as reports, messages, screens - not each data item) Queries (a query that results in a response of one or more data) master and logical files (internal file or data structure or data table) external interfaces (data or sets of data sent to external devices, applications, etc.)

Software engineering design

is the activity of specifying programs and sub-systems, and their constituent parts and workings, to meet software product specifications.

Software product design

is the activity of specifying software product features, capabilities, and interfaces to satisfy client needs and desires.

software architecture specification

must describe not only the elements and connections between elements but also the constraints and runtime behaviors so that developers know what must be implemented and how it should be implemented.

Process of definition

process must be carefully defined

A good software design

reduces risks in software production, coordinates development teams to work together orderly, makes the system traceable for implementation and testing, and leads to software products that have higher quality attributes.


Related study sets

Starting Out with Python 2e Chapter 9 (Ch.8 question)

View Set

Intro to Business Final Exam Fall 17 Ch 11-13

View Set

ACCT 530 Advanced Financial Accounting

View Set

Cryptocurrency - Cryptocurrency on Binance with Binance Info

View Set

Psych: Test 3 Chapter 11 Outlook

View Set

Passpoint: Basic Physical Assessment

View Set

Mental health assessment Nursing 2 N Ford PSC 11.9.02022

View Set