Software Engineering Features - Models, Methods, Tools, Standards, and Metrics

From SEBoK
Jump to navigation Jump to search

In recent decades software has become ubiquitous. Almost all modern engineered systems include significant software subsystems; this includes systems in the transportation, finance, education, healthcare, legal, military, and business sectors. Along with the increase in software utility, capability, cost, and size there has been a corresponding growth in methods, models, tools, metrics and standards, which support software engineering.

Chapter 10 of the SWEBOK discusses modeling principles and types, and the methods and tools that are used to develop, analyze, implement, and verify the models. The other SWEBOK chapters on the software development phases (e.g., Software Design) discuss methods and tools specific to the phase. Table 2 identifies software engineering features for different life-cycle phases. The table is not meant to be complete; it simply provide examples. In Part 2 of the SEBoK there is discussion of models and the following is one of the definitions offered: “an abstraction of a system, aimed at understanding, communicating, explaining, or designing aspects of interest of that system” (Dori 2002). For the purposes of Table 2 we extend the definition of a model to some aspect of the software system or it development. So as an example, we list “Project Plan” as a model in the Software Management area. The idea is that the Project Plan provides a model of how the project is going to be carried out: the project team organization, the process to be used, the work to be done, the project schedule, and the resources needed.


Table 2: SWE Features

Life-Cycle Activity Models Methods & Tools Standards

Software Management

  • Life-Cycle Process Model
  • Work Breakdown Structure
  • Constructive Cost Model (COCOMO)
  • Project Plan
  • Configuration Management (CM) Plan
  • Risk Management Plan
  • Effort, Schedule and Cost Estimation
  • Risk Analysis
  • Data Collection
  • Project Tracking
  • CM Management
  • Iterative/Incremental Development
  • Agile Development
  • [IEEE 828[
  • [IEEE 1058]
  • [IEEE 1540]
  • [IEEE 12207]

Software Requirements

  • Functional Model
  • User Class Model
  • Data Flow Diagram
  • Object Model
  • Formal Model
  • User Stories
  • Requirements Elicitation
  • Prototyping
  • Structural Analysis
  • Data-Oriented Analysis
  • Object-Oriented Analysis
  • Object Modeling Language (OML)
  • Formal Methods
  • Requirements Specification
  • Requirements Inspection
  • [IEEE 830]
  • [IEEE 1012]
  • [IEEE 12207]

Software Design

  • Architectural Model
  • Structure Diagram
  • Object Diagram
  • Class Specification
  • Data Model
  • Structured Design
  • Object-Oriented Design
  • OML
  • Modular Design
  • Integrated Development Environment (IDE)
  • Database Management System (DBMS)
  • Design Review
  • Refinement
  • [IEEE 1012]
  • [IEEE 1016]
  • [IEEE 12207]
  • [IEEE 42010]

Software Construction

  • Detail Design Document
  • Pseudocode
  • Flow Chart
  • Program Code
  • Unit Test Plan
  • Integration Test Plan
  • Detailed Design
  • Functional Programming
  • Object-Oriented Programming
  • IDE
  • DBMS
  • Black Box/White Box Testing
  • Basic Path Testing
  • Unit Testing
  • Code Review
  • Proof of Correctness
  • Software Reuse
  • Integration
  • Integration Testing
  • [IEEE 1008]
  • [IEEE 1012]
  • [IEEE 1016]
  • [IEEE 12207]

Software Testing

  • System Test Plan
  • Reliability Model
  • Software Maintenance Process
  • Usability Testing
  • System Testing
  • Acceptance Testing
  • Regression Testing
  • Reliability Testing
  • Non Functional Software Testing
  • [IEEE 829]
  • [IEEE 1012]
  • [IEEE 12207]

Software Maintenance

  • Software Maintenance Process
  • Automated Testing Tools
  • Maintenance Change
  • Impact Analysis
  • Inventory Analysis
  • Restructuring
  • Reverse Engineering
  • Re-engineering
  • [IEEE 1219]
  • [IEEE 12207]
  • [IEEE 14764]

References

Works Cited

Dori, D. 2003. "Conceptual Modeling and System Architecting." Communications of the ACM, 46(10), pp. 62-65

[IEEE Bourque, P. and R.E. Fairley (eds.). 2014. Guide to the Software Engineering Body of Knowledge (SWEBOK). Los Alamitos, CA, USA: IEEE Computer Society. Available at: http://www.Swebok.org.

[IEEE 828] IEEE Computer Society, IEEE Standard for Computer Configuration Management in Systems and Software Engineering, IEEE Std 828- 2012, 20012.

[IEEE 829] IEEE Computer Society, IEEE Standard for Software and System Test Documentation, IEEE Std 829- 2008, 2008.

[IEEE 830] IEEE Computer Society, Recommended Practice for Software Requirements Specifications, IEEE Std 830-1998, 1998.

[IEEE 1008] IEEE Computer Society, IEEE Standard for Software Unit Testing, IEEE Std 1008-1987, 1987.

[IEEE 1012] — IEEE Computer Society, IEEE Standard for System and Software Verification and Validation. IEEE Std 1012-2002, 2012.

[IEEE 1016] — IEEE Computer Society, Recommended Practice for Software Design Descriptions. IEEE Std 1016-2002, 2002.

[IEEE 1058] IEEE Computer Society, IEEE Standard for Software Project Plans, IEEE Std 1058-1998, 1998.

[IEEE 1219] IEEE Computer Society, IEEE Standard for Software Maintenance, IEEE Std 1219-1998, 1998.

[IEEE 1540] IEEE Computer Society, IEEE Standard for Risk Management, IEEE Std 1540-2001, 2001.

[IEEE 12207] IEEE Computer Society, IEEE Standard for Systems and Software Engineering —Software Life Cycle Processes, IEEE Std 12207-2008. 2008.

[IEEE 14764] IEEE Computer Society, IEEE Standard for Software Engineering - Software Life Cycle Processes - Maintenance. IEEE Std 14764-2006. 2006

[IEEE 42010] IEEE Computer Society, IEEE Standard for Systems and Software Engineering — Architecture Description, IEEE Std 42010-2011, 2011.

Additional References

McConnell, Steve. 2009. Code Complete,. 2nf Ed. Microsoft Press.

Moore, James. 1997. Software Engineering Standards: A User's Road Map. Wiley-IEEE Computer Society Press.

Sommerville, I. 2010. Software Engineering. 9th Ed. Boston, MA, USA: Addison Wesley.


< Previous Article | Parent Article | Next Article >


SEBoK v. 1.9.1 released 30 September 2018

SEBoK Discussion

Please provide your comments and feedback on the SEBoK below. You will need to log in to DISQUS using an existing account (e.g. Yahoo, Google, Facebook, Twitter, etc.) or create a DISQUS account. Simply type your comment in the text field below and DISQUS will guide you through the login or registration steps. Feedback will be archived and used for future updates to the SEBoK. If you provided a comment that is no longer listed, that comment has been adjudicated. You can view adjudication for comments submitted prior to SEBoK v. 1.0 at SEBoK Review and Adjudication. Later comments are addressed and changes are summarized in the Letter from the Editor and Acknowledgements and Release History.

If you would like to provide edits on this article, recommend new content, or make comments on the SEBoK as a whole, please see the SEBoK Sandbox.

blog comments powered by Disqus