Software Development Process – Requirements Specifications, Design Methods

Terms and Concepts

Analysis – Activity of Software Requirements Engineering where the needs for a new system are defined by stakeholders and by any role with vested interests in the system/project. The analysis seeks to answer how does the system solves a problem (added value) taking in consideration the constraints on a solution as well as its feasibility

Anti-Patterns – A pattern that is commonly used but ineffective and/or counter productive in practice, it has the following characteristics:

  • Some repeated pattern of action, process or structure that initially appears to be beneficial but ultimately produces more bad consequences than beneficial results

Architectural Design – Part of the software design and implementation where the following items are identified:

  • Overall structure of the system
  • Principal components (also called subsystems or modules)
  • Their relationships
  • How are they distributed

Architectural Styles – Also known as Design Styles or Architectural Patterns, they possesses the following characteristics:

  • Define “direction / layout”
    • Threads and execution (control flow)
    • Communication
    • Modularity
  • Allows allocation across infrastructure
  • Defines platform requirements
  • Styles:
    • Flow
    • Layered
    • Data-Centered
    • Virtual Machines
  • It is object oriented
  • Could be a mixture of patterns

Blue Ocean Strategy – Is a strategy known for having competitive advantage by delivering a solution with added value. This is done by the following ways:

  • Reduce existing factors from industry standards
  • Raise factors above industry standards
  • Eliminate factors that industry has taken for granted
  • Create something that hasn’t been created before

Cohesion – Is the relationship between the modules / functions of a system. High / Strong cohesion is best since it leads to good rules. Accessed based on design / understanding of code. Types of cohesion:

  • Functional cohesion – does ONE thing only
  • Informational cohesion – Multiple functions operating on the same data
  • Sequential cohesion – Functions that can be put in sequence where each have no meaning alone. Only together have meaning
  • Temporal cohesion – They happen at the same time together
  • Logical cohesion – One of the parameters is a flag for identifying what to actually do. A common “signature” for functions
  • Coincidental cohesion – No logical relationship or functionality as to why code is together in a module, also called “illogical programming” or “programming on acid”

Constraints – Limitations for a given solution. Key constrains are: Resources, Time, Infrastructure, People, Technology

Conversation – Is a style of use case involving actors and the system and can be defined as an ordered iteration, a request / response or event driven metaphors

Coupling – (“Loose” coupling is best) Is related to the communication between modules. It defines the “opaqueness” of the “black box” for a module. It involves significant implications for maintainability and code evolution

Requirement – High-level, general, business-focused descriptions of what the system should do

Specification – Low-level, detailed, developer-focused descriptions of what the system should do


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: