Username: Save?
Password:
Home Forum Links Search Login Register*
    News: Keep The TechnoWorldInc.com Community Clean: Read Guidelines Here.
Recent Updates
[April 24, 2024, 11:48:22 AM]

[April 24, 2024, 11:48:22 AM]

[April 24, 2024, 11:48:22 AM]

[April 24, 2024, 11:48:22 AM]

[April 03, 2024, 06:11:00 PM]

[April 03, 2024, 06:11:00 PM]

[April 03, 2024, 06:11:00 PM]

[April 03, 2024, 06:11:00 PM]

[March 06, 2024, 02:45:27 PM]

[March 06, 2024, 02:45:27 PM]

[March 06, 2024, 02:45:27 PM]

[March 06, 2024, 02:45:27 PM]

[February 14, 2024, 02:00:39 PM]
Subscriptions
Get Latest Tech Updates For Free!
Resources
   Travelikers
   Funistan
   PrettyGalz
   Techlap
   FreeThemes
   Videsta
   Glamistan
   BachatMela
   GlamGalz
   Techzug
   Vidsage
   Funzug
   WorldHostInc
   Funfani
   FilmyMama
   Uploaded.Tech
   MegaPixelShop
   Netens
   Funotic
   FreeJobsInc
   FilesPark
Participate in the fastest growing Technical Encyclopedia! This website is 100% Free. Please register or login using the login box above if you have already registered. You will need to be logged in to reply, make new topics and to access all the areas. Registration is free! Click Here To Register.
+ Techno World Inc - The Best Technical Encyclopedia Online! » Forum » THE TECHNO CLUB [ TECHNOWORLDINC.COM ] » Computer / Technical Issues » Miscellaneous
 OVERVIEW ON SOFTWARE ENGINEERING
Pages: [1]   Go Down
  Print  
Author Topic: OVERVIEW ON SOFTWARE ENGINEERING  (Read 1017 times)
Taruna
Elite Member
*****



Karma: 13
Offline Offline

Posts: 845

Hi ALL


View Profile
OVERVIEW ON SOFTWARE ENGINEERING
« Posted: January 03, 2007, 02:10:57 PM »


OVERVIEW ON SOFTWARE ENGINEERING

Software process Engineering: the definition, implementation, measurement, management, change and improvement of the software engineering process itself.

Product quality: the totality of characteristics that bear on its ability to satisfy stated or implied needs.
Quality software: software that facilitates efficient, effective and comfortable use by a given set of users for a set of purposes under specified conditions.

Software quality concepts

* Measuring the value of quality
* ISO 9126 quality description

1. Functionality - suitability, accuracy, interoperability, security, compliance
2. Reliability - maturity, fault tolerance, recoverability compliance
3. Usability - understandability, learnability, operability, attractiveness, compliance
4. Efficiency - time behavior, resource utilization, compliance
5. Maintainability - analyzability, changeability, stability, testability, compliance
6. Portability - adaptability, installability, co-existence, replaceability, compliance

* Dependability

o Availability - the product s readiness for use on demand
o Reliability - the longevity of product performance
o Maintainability - ease of maintenance and upgrade
o Maintenance support - continuing support to achieve availability performance objectives
o Trustability - system s ability to provide users with information about service correctness.
o Additional attributes - fault tolerance, safety, security, usability.
* Special types of systems and quality needs
o Intelligent and Knowledge based systems: Anytime property (best answer within a given amount of time), explanation capability
o Human interface: adaptivity, intelligent help, display salience
+ Intuitive for the novice
+ Efficient in perception and motion for the expert
+ Robust under misuse
+ Facilitating in recovery from cognitive or manipulative mistakes
+ Helpful in diagnosing errors and suggesting corrective action
+ Rich in incrementally learnable functions, like the alphabetical shortcuts on the Mac interface

* Information systems: ease of query, high recall, high precision, tradeoffs

Other considerations

* Stylishness of code
* Code and object reusability
* Traceability: from requirements to code/test documentation and vice versa.
* Modularity of code and independence of modules

Purpose and planning of SQA and V&V

* SQA - process provides assurance that the software products and processes conform to their specified requirements by planning a set of activities to help build quality into the software.
* V & V - process determines whether products of an activity conform to the needs of that activity and whether the final product satisfies its intended use and user needs.

Verification - the product is built right (conforms to specifications)

Validation - the right product is built (satisfies the user)

* Common planning activities

1. defining the required product in terms of its quality attributes
2. planning the processes to achieve the required product

* The SQA plan
* The V&V plan

Software Maintenance:

Software maintenance sustains the software product thoughout its life cycle. Modification requests are logged and tracked, the impact of proposed changes is determined, code is modified, testing is conducted, and a new version of the software product is released. Training is provided to users.

DEFNITION:
Software maintenance is the modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment.Software Maintenance: the totality of activities required to provide cost-effective support to a software system.

Basic Concepts

* Definitions and terminology
* Majority of maintenance costs - 80% is for non-corrective action i.e., evolution
* The nature of maintenance
* Evolution of software
* Need for maintenance

o To do:

+ Correct errors
+ Correct requirements and design flaws
+ Improve the design
+ Make enhancements
+ Interface with other systems
+ Convert to use other hardware, ... can be used.
+ Migrate legacy systems
+ Retire systems

o Major aspects

+ Maintaining control over the system s day-to-day functions
+ Maintaining control over system modification
+ Perfecting existing acceptable functions
+ Preventing system performance from degrading to unacceptable levels.

* Categories of maintenance

o Corrective - reactive modification to correct discovered problems.
o Adaptive - modification to keep it usable in a changed or changing environment.
o Perfective - improve performance or maintainability.
o Preventive - modification to detect and correct latent faults.

Maintenance Process

* Process models

o Process implementation tasks
+ Develop maintenance plans and procedures
+ Establish procedures for modification requests
+ Implement the CM (configuration management) process

o Problem and modification tasks

+ Perform initial analysis
+ Verify the problem
+ Develop options for implementing the modification
+ Document the results
+ Obtain approval for modification option
o Modification implementation task
+ Perform detailed analysis
+ Develop, code, and test the modification
o Maintenance Review/Acceptatnce tasks
+ Conduct reviews
+ Obtain approval for modification

o Migration tasks

+ Develop a migration plan
+ Notify users of migration plan
+ Conduct parallel operations
+ Notify user that migration has started
+ Conduct post-operation review
+ Ensure that old data is accessible

o Software retirement tasks

+ Develop a retirement plan
+ Notify users of retirement plan
+ Conduct parallel operations
+ Notify user that retirement has started
+ Ensure that old data is accessible

* Maintenance activities

o Unique activities
o Supporting activities
o Configuration management
o Quality
o Maintenance planning activity
+ Concept
# Scope
# Tailoring of the postdelivery process
# Designation of maintainer
# Estimate of life cycle costs
+ Plan

Key issues in software maintenance

* Technical

o Limited understanding (40-60% of maintenance effor is devoted to understanding of the software to be modified)
o Testing - See Testing
o Impact analysis -
o Maintainability - see Quality
* Management
o Alignment with organizational issues
o Staffing
o Process issues
o Organizational aspects of maintenance
+ The maintainer
+ Outsourcing
+ Organizational structure
* Cost and estimation
o Cost
o Cost estimation
o Parametric models
o Experience
* Software maintenance measurement
o Specific measures
+ SEI: size effort, schedule, quality
+ Takang and Grubb: size , complexity, quality, understandability, maintainability, cost estimation
+ NASA: size, staffing, request number/status, enhancement numbers/status, resource utilization, fault density, volatility, discrepancy report open duration, break/fix ratio,
reliability, design complexity, fault type distribution

Techniques for maintenance

* Re-engineering
* Reverse engineering
* Impact analysis
o determine scope
o develop accurate estimates
o analyze the cost/benifits
o Communicate to other the complexity of agiven change.

TESTING

Software testing consists of the dynamic verification of the behavior of a program on a finite set of test cases, suitably selected from the usually infinite executions domain, against the specified expected behavior.

Basic concepts and definitions

* Terminology
o IEEE Std 610 Glossary
o Faults vs. Failures
* Theoretical foundation
o Test selection criteria/Test adequacy criteria
o Test effectiveness/Objectives for testing
o Testing for defect identification
o The oracle problem
o Theoretical and practical limitations of testing
o The problem of infeasible paths
* Relationship to other activities
o Testing vs. Static analysis techniques
o Testing vs. Correctness proofs and formal verification
o Testing vs. Debugging
o Testing vs. Programming
o Testing within SQA
o Testing within CMM
o Testing within Cleanroom
o Testing and Certification

Test levels

* Target of the test
o Unit testing
o Integration testing
o System testing
* Objectives of the test
o Acceptance/qualification testing
o Installation testing
o Alpha and Beta testing
o Conformance testing/Functional testing/Correctness testing
o Reliability achievement and evaluation by testing
o Regression testing
o Performance testing
o Stress testing
o Back-to-back testing
o Recovery testing
o Configuration testing
o Usability testing
Test Techniques

* How tests are generated
o Tester s intuition and experience - ad hoc testing
o Specification based
+ Equivalence (classes) partitioning
+ Boundary-value analysis (and robustness testing)
+ Decision table
+ Finite state machine-based
+ Testing from formal specifications
+ Random testing
o Code based
+ Reference models for code-based testing
+ Control flow-based criteria
o Fault based
+ Error guessing
+ Mutation testing
o Usage based
+ Operational profile
+ Software Reliability Engineering Testing (SRET)
o Nature of the application
+ Object-oriented testing
+ Component-based testing
+ Web-based testing
+ GUI testing
+ Testing of concurrent programs
+ Protocol conformance testing
+ Testing of distributed systems
+ Testing of real-time systems
+ Testing of scientific software
* Ignorance or knowledge of implementation
o Black box - equivalence partitioning, boundary-value analysis, decision table, finite-state machine, from formal specifications, error guessing, random testing, operational profile, SRET
o White box - Reference models, control-flow based, mutation testing
* Selecting and combining techniques
o Functional and structural
o Coverage and operational/Saturation effect

Test related measures

* Evaluation of the program under test
o Program measurements to aid in planning and designing testing
o Types classification and statistics of faults
o Fault density
o Life test, reliability evaluation
o Reliability growth models
* Evaluation of the tests performed
o Converge/thoroughness measures
&n
bsp; o Fault seeding
o Mutation score
o Comparison and relative effectiveness of different techniques

Managing the test process

* Management concerns
o Attitudes/Egoless programming - attitude of software quality and objective of early failure discovery
o Test process - people, tools, policies, measurements
o Test documentation and workproducts - IEEE Std 829-1998
+ Test plan
+ Test design specifications
+ Test procedure specification
+ Test case specification
+ Test log and test incident or problem report
o Internal vs. independent test team
o Cost/effort estimation and other process measures
o Termination
o Test reuse and test patterns
* Test activities
o Planning
o Test case generation
o Test environment development
o Execution
o Test results evaluation
o Problem reporting/test log
o Defect tracking

Tasks
Deliverables

* Test plan
* Tests
* Defect log

Overview

* Quality control techniques
1. Fault avoidance techniques
o development methodologies
o configuration management -
o verification techniques - proofs using pre- and post- conditions
o reviews - walkthroughs and inspections
2. Fault detection techniques
o debugging - state tracing from unplanned failure to erroneous state
+ correctness
+ performance
o testing - attempts to create failures in a planned way
3. Fault tolerance techniques - the recovery from failure while the system is executing.

Testing Concepts

* component - a part that is isolated for testing
* fault - design or coding mistake that causes unspecified behavior
* error - manifestation of a fault
* failure - deviation between specification and behavior
* test case - input and expected results
* test stub & test driver -
* correction - a change to a component

Testing Activities


The testing wheel - overlapping, on going cycle

1. Unit testing
2. Test case design
3. Usability testing
4. Integration testing
5. Performance testing
6. System testing
7. Regression testing

* Component inspection: source code review/walkthrough
o Fagan s inspection method
+ Overview: purpose and scope of the component and goals of the inspection
+ Preparation: reviews become familiar with the component
+ Inspection meeting
+ Rework
+ Follow-up
* Unit testing
o equivalence testing (black box)- equivalence classes of test data
o boundary testing (black box)
o path testing (white box)
o state-based testing
* Integration testing
o big bang testing - jump from unit to complete system
o bottom-up testing (test drivers; no stubs are necessary)
o top-down testing (no test drivers are necessary; stubs are necessary for undeveloped lower levels)
o sandwich testing - combined of top-down and bottom-up
* System testing
o functional testing (from RAD)
o performance testing (from SDD)
+ stress testing
+ volume testing
+ security testing
+ timing tests
+ recovery tests
o pilot testing (with selected in target enviroment end users)
o acceptance testing (by client in development environment against acceptance criteria from the Project Agreement)
o installation testing (usability, functional, and performance testing by client in target environment)

Management of testing
Planning

* select test cases as soon as models become stable
* parallelize tests

Documentation

* test plan
1. introduction - objectives and extent of the tests
2. relationship to other documents - RAD, SDD, ODD
3. system overview
4. features to be tested
5. pass/fail criteria
6. approach
7. suspension and resumption
8. testing materials (hardware/software requirements)
9. test cases
10. testing schedule
* test case specification
1. test case specification identifier
2. test items
3. input specification
4. output specification
5. environmental needs
6. special procedural requirements
7. intercase dependencies
* test incident report - actual test results, failures experienced
* test summary report - collection of test incident reports, analysis and priorities


Software Engineering Management: the application of management activities - planning, coordinating, measuring, monitoring, controlling and reporting - to ensure that the development of software is systematic, disciplined and measured. planning and allocating resources to ensure the delivery of a quality system on time and within budget.

Organizational Management

1. Policy management
1. Means of policy development
2. Policy dissemination and enforcement
3. Development and deployment of standards
2. Personnel management
1. Hiring and retention
2. Training and motivation
3. Mentoring for career development
3. Communication management
1. Communication channels and media
2. Meeting procedures
3. Written presentations
4. Oral presentations
5. Negotiation
4. Portfolio management - multiple clients and/or multiple projects
1. Strategy development and coordination
2. General investment management techniques
3. Project selection
4. Portfolio construction
5. Procurement management
1. Procurement planning and selection
2. Supplier contract management

Process/Project Management

1. Initiation and scope definition
1. Determination and negotiation of requirements
2. Feasibility analysis (technical, operational, financial, social/political)
3. Process for review and revision of requirements
2. Planning
1. Process planning
2. Project planning
3. Determine deliverables
4. Effort, schedule and cost estimation
5. Resource allocation
6. Risk management
7. Quality management
8. Plan management
3. Enactment
1. Implementation of plans
2. Implementation of measurement process
3. Monitor process
4. Control process
5. Reporting
4. Review and evaluation
1. Determining satisfaction of requirements
2. Reviewing and evaluating performance
5. Closure
1. Determining closure
2. Closure activities

Software Engineering Measurement

1. Goals
1. Organizational objectives
2. Software process improvement goals
2. Measurement selection
1. Goal-driven measurement selection
2. Measurement validity
3. Measuring software and its development
1. Size measurement
2. Structure measurement
3. Resource measurement
4. Quality measurement
4. Collection of data
1. Survey techniques and form design
2. Automated and manual data collection
5. Software measurement models
1. Model building, calibration and evaluation
2. Implementation, interpretation and refinement of models

Tasks
Project Phases and Project Life Cycle
A project development life cycle is partitioned into three phases

1. project initiation (project manager, selected team leaders, client)
* Activities
o Problem statement definition
o Intial top-level design
o Initial milestone planning
o Team formation
o Communication infrastructure setup
o Project kickoff
* The starting point for
o the Project Agreement Document
o Requirements Analysis Document (RAD)
o System Design Document (SDD)
o Software Project Management Plan (SPMP)
* The deliverables are
o The problem statement
o The top level design
o The organization
+ initial teams, their roles, and their communication paths.
+ initial task plan
+ initial schedule
2. project steady state (project manager, team leaders, development)
* Activities
o Status monitoring
o Risk management
o Project agreement definition
o Project replanning
* The intermediate deliverables are
o The Project Agreement Document
o The Requirements Analysis Document
o The Software Project Management Plan
o The System Design Document
* The key deliverable is the implementation
3. project termination (project manager, selected team leaders, client)
* Installation, Operation, Maintenance (software maintenance)
* Client acceptance test
* Postmortem

The Software Project Management Plan (SPMP ) details the structure of the project and it consists of the following parts:

1. Introduction: overview, deliverables, references
2. Organization: process, structure
3. Managerial process: objectives, assumptions, monitoring
4. Technical process: methods, documentation, support
5. Work packages, schedule, and budget
6. Additional components

Project Stakeholders
Organizational Influences
General Management Skills

* Leading
o Establishing direction
o Aligning people
o Motivating and inspiring
* Communicating
* Negotiating
o Scope, cost, & schedule objectives
o Changes to scope, cost, or schedule
o Contract terms & conditions
o Assignments
o Resources
* Problem solving
o Problem definition
o Decision making
* Influencing the Organization

Socioeconomic Influences
Management Concepts
Project Elements

* Teams - sets of participants; work on a common problem
o Organization
o Size
o Leader s role
o Decision making
o Authority
o Motivation
o Evaluation
o Communication
* Roles - sets of responsibilities
* Work products - deliverables and intermediate products of the project
* Tasks - steps necessary to generate one or more work product
* Schedules - mapping of the task model onto a time line (Gantt chart : bar graph with horizontal axis representing time, vertical axis represents different tasks to be done. PERT chart: an acyclic graph of tasks

Project Structure

* Project manager
* Team leader
o Developers (team members)
o Liaison - a developer responsible for the task of communicating with another team
* Cross-functional teams - teams that accomplish project wide functions such as system architecture, documentation, and testing.

Software Project Management

* Communication:
* Rationale management:
o The problem
o the alternatives considered
o the criteria used to evaluate the alternatives
o the debate
o the decision
* Testing: find differences between the system and its models by executing the system with sample input data sets.
o Unit testing: object design compared with object and subsystem.
o Integration testing: combinations of subsystems are integrated and compared with the system design model.
o System testing: typical and exceptional cases are compared with the requirements model
o Acceptance testing
* Software configuration management: establishes baseline, monitors and controls changes in work products, versions.
* Project management: oversight activities that insure the delivery of a high-quality system on time and within budget including
o planning and budgeting
o hiring and organizing developers into teams
o monitoring project status
o intervening when deviation occur
* Software life cycle modeling activities

Logged

Pages: [1]   Go Up
  Print  
 
Jump to:  

Copyright © 2006-2023 TechnoWorldInc.com. All Rights Reserved. Privacy Policy | Disclaimer
Page created in 0.189 seconds with 24 queries.