Sei sulla pagina 1di 5

INF 3705 Cheat Sheet: • Representing system requirements such as

The Waterfall Model: SEQUENCE performance and reliability are impossible


• Requirements Analysis and definition • Relationship between architecture and user stories is
• System and software design unclear.
• Implementation and unit testing
• Integration and system testing
• Operation and maintenance 1. User Requirements: which is the requirements that
EXAMPLES: are statements in natural language plus diagrams
• Embedded systems of the services the system provides and its operational
• Critical Systems constraints.
• Large software systems 2. System Requirements: A structured document
• Safety systems setting out detailed description of the systems
Incremental Development (Agile): INTERLEAVED functions, services and operational constraints. Define
• Specification what should be implemented. It may be part of
• Development INTERLEAVED a contract between client and contractor.
• Validation 3. Functional Requirements: these are the statement
ADVANTAGES: of the services the system should provide, how the
• Cost Reduction system should react to particular input and how the
• Quick Customer Feedback
system should behave in particular situations.
• Early Delivery
DISADVANTAGES:
4. Non-functional requirements: Constraints on the
• Process not visible services or functions offered by the system such as
• Systems tend to degrade timing constraints, constraints on the development
process, standards etc often these are applied to
SOFTWARE SPECIFICATION: Specification of what the the system as a whole rather than individual features
program must do or services.
SOFTWARE DESIGN AND IMPLEMENTATION: The
development of the system / software Use Case:
SOFTWARE VALIDATION: Ensures requirements are met Actors:
SOFTWARE EVOLUTION: Over time business changes, so will Inputs:
the program / system.
Outputs:
Normal Operation:
AGILE PRINCIPLES:
Exception:
1. Customer Involvement
a. Individual and interactions over processes
and tools System boundary:
2. Embrace Change Social and organisational concerns, mean position of
a. Responding to change over following a boundary is determined by non technical factors
plan
3. Incremental Delivery Early Design of Architecture:
a. Working software over comprehensive Architecture has an impact on the nonfunctional
documentation requirements and can influence the functional
4. Maintain Simplicity requirements too.
5. People, not process Architecture designed before requirements spec is
a. Customer collaboration over contract complete because:
negotiation o Allow manufacture of hardware by subcontractors
and provide models for system costing.
Extreme Programming: o you need to model the architecture to identify
Adv of stories: subsystems and associate the requirements
• Represent real situations arising so systems support with these subsystems.
common user operations
• Easy for users to understand and critique stories
• Represent increments of functionality

Disadv:
• Liable to be incomplete
• Focus on functional requirements
Software architecture affects:
• Performance Stress testing:
• Robustness Stress testing is where you deliberately increase the
• Distributability load on a system beyond its design limit to see how it
• Maintainability copes with high loads.
Advantages:
• Stakeholder communication 1. Development Testing:
• System analysis a. Unit testing: Individual Function methods or
• Large-scale reuse object classes
b. Component Testing: Test interacting objects
MVC: & Stored objects
• The view provides the UI element, rendering data c. System Testing: Test the integration of
from the model into a form suitable for UI components
• Controller receives input and makes calls to model
objects and view to perform various actions. Release Testing: Testing a particular release of the
• These work together to create the 3 components of system
MVC
User Testing: User / Customer Testing either informally
Client-server model example: / formally
• iTunes store music in a database where clients can a. Alpha Testing
search these tracks by music details via a web b. Beta Testing
based interface. c. Acceptance Testing
• Music can be purchased and downloaded via a web
TDD: Test Driven Development
based interface.
a. Identify task
Layered architecture:
b. Write the test
There are three types of layers for architecture of an c. Run the test
asset management system: d. Implement, re-run test
• User interface layer: user can access web services e. Once everything passed, move along
using the browser
• Business logic layer: user has some options. User Force a system to change:
goes to the business logic layer and access the New widespread technological advancements need not
data on the data access layer always be backward compatible with all types of older
• Database layer: user sees the stored procedures, systems. Newly designed usage interfaces data volume
different views, table and SQL server exchanges, and formats may all require existing
systems to undergo updates, or risk becoming
Configuration management aims: obsolete:
• Changes made by different developers do not 1. Widespread cloud based services
interfere with each other 2. An application based on mobile applications
• Always possible to create a specific version of a with constant changes in that sector
system
Socio-technical systems:
Testing: Systems that include technical systems but also
Regression: operational processes and people who use and interact
Regression testing is the process of running tests for with the technical system. Socio-technical systems are
functionality that has already been implemented governed by organisational policies and rules.
when new functionality is developed or the system is
changed. Characteristics:
Regression tests check that system changes have not • Emergent properties – Properties of the system of a
introduced problems into the previously whole that depend on the system components
implemented code. and their relationships.
Automated tests and a testing framework, such as • Non-deterministic – They do not always produce the
JUnit, radically simplify regression testing same output when presented with the same
The automated tests include their own checks that the input because the system’s behaviour is partially
test has been successful or otherwise so costs are dependent on human operators.
low. • Complex relationships with organisational objectives
– The extent to which the system supports
organisational objectives does not just depend on the Six reasons why dependability is important are:
system itself. • Users may not use the system if they don't trust it.
• System failure may lead to a loss of business.
Legacy System evolution: • An undependable system may lose or damage
1. Abandon maintenance of the system and replace it valuable data.
with a new system. • An undependable system may damage its external
2. Continue maintaining the system as it is. environment.
3 Perform some re-engineering (system improvement) • The reputation of the company who produced the
that makes the system easier to maintain and continue system may be damaged hence affecting other
maintenance. systems.
4. Encapsulate the existing functionality of the system • The system may be in breach of laws on consumer
in a wrapper and add new functionality by writing new protection and the fitness of goods for purpose.
code which calls on the existing system as a
component. The dependable software is considered as
5. Decompose the system into separate units and wrap sociotechnical systems because of the following:
them as components. • Diversity and redundancy are main components of
This is similar to the solution above but gives more dependable software and sociotechnical systems
flexibility in how the system is used. • The repeatable processes are not executed on the
basis of individual judgement or interpretation in
Replacement usually chosen where hardware platform dependable software. This is also the main ability of
is being replaced sociotechnical systems. The judgement of using
repeatable processes is done by team members
Factors which affect maintainability such as • Selection of process model is done in a similar way in
-program and data complexity, both types of systems
-use of meaningful identifiers, • Agile development is used in both systems
-programming language,
-program documentation etc. Redundancy:
It means that the spare capabilities of the
Software maintenance types: system can be used if any part of the system
• Corrective: Fault repairs to fix bugs and is causing failure
vulnerabilities Diversity:
• Adaptive: Environment adaption, new software or It means that there are different types of
environment redundant components in the system, thus
• Perfective: Functionality Addition increasing the chances that they will not fail
in the same way
The purposes of refactoring:
1. Refactoring Improves the Design of Software Formal methods:
2. Refactoring Makes Software Easier to Understand Formal methods are mathematical approaches to
3. Refactoring Helps Finding Bugs software development where you define a formal
4. Refactoring Helps Programming Faster method of the software. You may then formally
analyse this model to search for errors and
When to re-engineer: inconsistencies, prove that a program is consistent
• When system changes are mostly confined to part of with this model, or you may apply a series of
the system then re-engineer that part correctness-preserving transformations to the model
• When hardware or software support becomes to generate a program.
obsolete
• When tools to support re-structuring are available Fault tolerance:
The common characteristics of all styles to support
The purpose of re-engineering: fault tolerance is that there are multiple separate
1. To explain why software re-engineering is a cost- implementations of system functionality and some
effective option for system evolution error detection mechanism that can detect possible
2. To describe the activities involved in the software re- software failures
engineering process
3. To distinguish between software and data re-
engineering and to explain the problems of data
reengineering
Functional Reliability Specification: Benefits of system reuse:
o Checking Requirements: • Accelerated development: Bringing a system to
▪ Ensuring correct input market as early as possible is often more important
o Recovery Requirements: than overall development costs
▪ Assists the system recover from a failure • Effective use of specialists: Instead of doing the
o Redundancy Requirements: same work over and over again, application
▪ Specify redundant features of the system specialists can develop reusable software that
ensuring a single component failure doesn’t encapsulates their knowledge.
lead to loss of service • Increased dependability: Reused software, which
o Process Requirements: has been tried and tested is used again and should
▪ Fault avoidance requirements be more dependable than new software
• Lower development costs: Fewer lines of code
Safety-critical Systems: must be written
• Primary: • Reduced process risk: The cost of existing software
o Software embedded as a controller in a is already known, while the costs of development
system. are always a matter of judgment. Better estimation
o Malfunction of software can cause hardware of costs
malfunction. • Standards compliance: Some standards, such as
o E.g. Insulin Pump user interface standards, can be implemented as a
• Secondary: set of reusable components.
o Software malfunction that can indirectly
result in an injury Adaptors:
•Adaptors are used to combine the newly developed
Hazard Driven Techniques for Fault avoidance, system with already existing systems
detection, and removal: •Adaptors acts as an API between new system and
1. Avoidance: Designed so hazards are avoided – Foot existing system.
on clutch to •For interaction among system components for both
start a car the systems, adaptors are required.
2. Hazard Detection and removal: Hazard detection •In some systems, the output of existing system is
and removal required as input to newly developed system, so,
before resultant damage – Pressure relief valve adaptors are required.
3. Damage limitation: Protection to reduce damage
from accident – • Service-oriented architecture is an approach to
Automatic fire extinguisher on aircraft engine. software engineering where reusable, standardized
services are the basic building blocks for application
Examples of reusable software units: systems.
• System reuse: Reuse of entire systems for system of • The service engineering process involves identifying
systems candidate services for implementation, defining the
• Application reuse: Used without change and service interface, and implementing, testing, and
incorporated into deploying the service.
other systems
• Component Reuse: Components of an application • Web Services:
may be reused. o Run in a browser and operate the same way
• Object and function reuse: Reuse of a single function regardless of operating environment.
of object o Always up to date.
class. o Follows Standards and XML based messages
o Example: Sage One accounting or Aircraft Manuals
online

• RESTful services
o Not exclusively XML based
o Representations get transferred from a server to a
client.
o Services should be stateless
Workflows:
1. Formulate outline workflow
2. Discover services
3. Select possible services
4. Refine workflow
5. Create workflow program
6. Test completed service or application

Sociotechnical systems:
• Include Hardware, software, and now people,
processes, and organisational policies.

System development:
• Complex process in which elements part of the
system are
developed or purchased and then integrated to create
a final
system.
• System requirements are the bridge between
conceptual design
and development process.
• 7 Fundamental development activities:
o Requirements engineering
o Architectural design
o Requirements partitioning
o Subsystem engineering
o System integration
o System testing
o System deployment

Procurement Process:

Potrebbero piacerti anche