Level 146 Level 148
Level 147

Software Engineering


96 words 0 ignored

Ready to learn       Ready to review

Ignore words

Check the boxes below to ignore/unignore words, then click save at the bottom. Ignored words will never appear in any learning session.

All None

Ignore?
Increasing Demands and Low expectations
Name two Factors That Could lead to software Failure
Describe what is meant by increasing demands
Due to the rapid change in technology it is hard to keep up with new requests before the need for more
Describe what is meant by Low Expectations
By not using Software Engineering to Develop new software the software tends to be more expensive and not as realiable
Software Engineering
An engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use
Specification, Development, Validation, Evolution
All software engineering involves what 4 things
Describe Software Specification
defining what the system should do, how it should behave, what hi-level data does it use, what it should look like
Describe Software Development
Defining the organization of the system, implementing and building the system
Describe Software Validation
Checking that the system does what the customers want and/or motivates them to "buy" it
Describe Software Evolution
Changing the system in response to customer needs
Software Engineering Process
A structured set of activities used to develop a software system
Waterfall model Definition*
Separate and distinct phases are performed in sequence, Planning occurs up front: "Plan-Driven"
Main Con of Waterfall*
The main drawback of the waterfall model is the difficulty of accommodating change after the process is underway. As customers often need to change the requirements
When to use Waterfall*
The model is appropriate only when the requirements are well-understood upfront and changes will be fairly limited during the design process
Define Incremental Development *
This approach interleaves the activites of specification, development, and validation. The system is developed as a series of versions, with each version adding functionality to the previous version
Pros of Incremental Development*
The cost of changes is less. The documentation does not have to be fully done rather it is staged. Customer feedback is more readily available. The software can be used earlier than in a waterfall model
Cons of Incremental Development*
The process is not as visible to others. System structure can degrade as new increments are added
What is refactoring*
Restructuring an existing body of code, altering its internal structure without changing its external functional behavior
Agile Manifesto*
1.Individuals and interactions over processes and tools.2. Working software over comprehensive documentation. 3.Customer collaborations over contract negotiation. 4.Responding to change over following a plan.
Name five Agile Methods*
Customer Involvement, Incremental Delivery, People not process, Embrace change, Maintain simplicity
Describe Customer Involvement in Agile*
Customers should be closely involved throughout the development process. Their role is to provide and prioritize new system requirements and to evaluate the iterations of the new system
Describe Incremental Delivery in Agile*
The software is developed in increments with the customer specifying the requirements to be included in each inrement
What is meant by People not Process in Agile*
The skill of the development team should be recognized and exploited. Team members should be left to develop their own ways working without prescriptive process
What is meant by Embrace change in Agile*
Expect the system requirements to change and so design the system to accommodate these changes
What is meant by Maintain simplicity in Agile*
Focus on simpliicity in both the software being developed and in the development process. Wherever possible, actively work to eliminate complexity
Cons of Agile*
Keeping interest of those involved in the process. Some team members can not keep up. Prioritizing changes can be difficult with multiple stakeholders. Simplicity takes work. Contracts may be problematic
Ask What is the expected system lifetime
Long-Lifetime systems may require more design documentation to communicate the orignal intentions of the system developers to the support team
Ask What technologies are available to support system development?
Agile methods rely on good tools to keep track of an evolving design
Ask How is the development team organized?
If the team is distributed or if part of the process is being outsourced, then you may need to develop design documents to communicate across the development
Describe the extreme programming Release cycle
1.Select User stories for this release
Name the XP practices
Incremental Planing. Small releases. Simple Design. Test-first development. Refactoring
Explain Incremental Planning with XP
Requirements are recorded on story cards and the stories to be included in a release are determined by the time available and their relative priority
Explain Small releases with XP
The minimal useful set of functionality that provides business value is developed first. Releases of the system are frequent and incrementally add functionality to the first release
Explain Simple Design with XP
Enough Design is carried out to meet the current requirements and no more
Explain Test-first Devolpement
AN automated unit test framework is used to write tests for a new piece of functionality before that functionality itself is implemented
Explain refactoring with XP
All developers are expected to refactor the code continuously as soon as possible code improvements are found. This keeps the code simple and maintainable
Name more XP practices
Pair Programming, Collective ownership, Continuous integration. Sustainable pace. On-site customer
UML DIagrams
Activity Diagrams, Case Diagrams, Sequence Diagrams, State Diagrams and Class Diagrams
Activity Diagrams
Show the activities involved in a process or in data processing
Case Diagrams
show the interactions between a system and its enviroment
Sequence Diagrams
Are used to model the logic of usage scenarios, by showing the information passed between objects in the system through the execution of the scenario. Shows how classes and objects interact during a scenario.
Class Diagrams
show the object classes in the system and the associations between these classes
State Diagrams
show how the system reacts to internal and external events
Explain SCRUM
There are three phases in Scrum.
Different types of software Applications
Stand-Alone, Interactive transaction-based , Embedded control systems, Batch processing systems
Stand-alone applications
A system that focuses on the specific needs of an individual department and is not designed to communicate with other systems in the organization
Interactive transaction based applications
Execute on a remote machine. Included web and internet connected phone, TV, car and toaster apps
Embedded control systems
Software systems that control and manage hardware devices. Probably more embedded systems than any other type of system
Batch Processing System
Business systems designed to process data in large batches. Large numbers of individual inputs creating corresponding outputs
Entertainment systems
Primarily for personal use
Systems for modeling and simulations
Used by scientists and engineers to model physical processes or situations
Data Collection systems
Sensor, Social media, send that data to other systems for processing
Systems of systems
composed of a number of other software systems. Military, automotive, internet of things
User Story*
represents a small piece of business value that a team can deliver in iteration
Task*
unit of work that contributes to the fulfillment and completion of a schedule work item
Product Planning *
Usually done by the product owner. A long range,longer iteration activity
Release Planning*
Usually done by product owner, the team and sometimes other stakeholders. It;s goal is to define the content of a release with estimates of the time frame for the release
Sprint Planning *
The team commits to the completing a set of the highest ranked product/release backlog items
Product Backlog*
A ranked list of briefly-described feature requests. Ideally, these should be broken down into user stories
Release Backlog *
Contains subset of product backlog features that will go into the next release of the product
Sprint Backlog*
List of user stories and their tasks selected by the team to be completed during the sprint
Process Model*
Shows how the system is used
Validation Testing
To show that it works how it should
Defect Testing
to find faults where the behavior is incorrect , not up to par
Verifcation
Are we building the product right?
Validation
4th step of requirements gathering
Test-driven development Pros
Writing tests before code clarifies the requirements to be implemented. Test are programs that can be done automatically and returns a check
Failure
Deviation between the specification and the actual behavior of the system
Fault
aka bug, defect
Test case
An automated set of stimuli and responses for the system. Each __________ should leave the system the way it found it, so __________s can run independently of each other.
Testing
The systematic attempt to find faults i a planned way in the implemented software
Test Case Format
Name-Explains Purpose of test
Two different test cases
Blackbox test -focus on input/output behavior of the software
Test Driver
code that simulates the part of the system that calls the component under test, driver provides the input for the test case, code in a function that is used during the test
Test Stub
Code that calls the component that needs testing , has to support the called component's interface, and return a value of the appropriate type
Stages of Testing
Development Testing, Release Testing, User Testing
Development testing
Unit testing - individual program uints
unit testing
Testing that verifies that individual units of source code are working
Types of User Testing
Alpha Testing - Users of the software work on Developer's site
Software inspections
people checking the source code to anomalies and defects
Advantages of Inspection
Find missed errors
Data faults
Checking for things that would fail to to data, such as not initializing a variable before its called, checking upperbound of arrays
Control faults
Logic faults, If/then statements, Case....
I/O faults
Are all input variables used?
Interface faults
Do all functions and method calls have the correct number of parameters?Do they match?In right order"
Storage management faults
If a linked structure is modified, have all links been correctly reassigned? Allocated Data Correct?
Exception Management faults
Have all possible error conditions been taken into account?
Product Quality Metrics
A quality metric should be a predictor of product quality
Dynamic metrics
which are collected by measurements made of a program in execution
Static metics
collected measurements made of the system representations
Dynamic Metrics PRO
Assess efficiency and reliability
Static metrics PRO
help assess complexity, understandability, and maintainability
Fan-In/Fan-out
Fan-in - measures number of fucntions that call another function, High = Lots of things tied to it
Length of code
Measure of the size of a program-The larger the program the more the mistakes
Length of Identifiers
Making sure names of functions and other items are long enough to have meaningful names
Depth of Conditional Nesting
How deep does the rabbit hole go
Frog Index
Average length of words and sentences in documents. High hard to undertand