Software Development Process – Using Object Oriented Analysis and Design through Iterative Development

There are some general good practices to follow when building a new software application. Below provides a good outline of steps when following an Object-Oriented methodolgy when performing the Analysis and Design during Iterative development.

Following the Unified Process (UP)

  1. Inception (Artifacts (any work product) are Optional)
    A short phase to develop and analze the vision/business case, Use-Case (Some) & Models, Supplementary Specification, Glossary, Risk Management, Iteration Planning,  Proof of concepts, Scope, Estimations, Development Case.
  2. Elaboration Phase (Multi-iteration)
    Most requirements analysis should occure in the Elaboration phase. Refining vision, core architecture, resolution of risk, identify most requirements & Use Case, realistic estimates, Domain Models, SSD, Interaction Diagram, Class Diagram, TDD,
  3. Construction
    Full iterative implementation, preperation for deployment
  4. Transition
    Testing and Deployment

Following the Unified Process Disiplines

  1. Business Modeling
    Visual and noteworthy concepts in the application domain.
  2. Requirements
    Use-Case and Models,Specification artifacts showing functional and non-functional requirements.
  3. Design
    Design Model Artifacts, for architectual objects, UI
  4. Implementation
  5. Test
  6. Deployment
  7. Configuration & Change Management
  8. Project Management
    Agile, Scrum
  9. Environment
  10. Business Modeling
    Agile Modeling
  11. Requirements
  12. Design
    Agile Modeling
  13. Implementation
    Test-Driven Develoment TDD, Continuous integration, Coding Standards

Status Codes and MIME Types

text Textual information. Subtypes include plain, html, and xml.
image Image data. Subtypes are defined for two widely used image formats,
jpeg and gif, and other subtypes exist as well.
audio Audio data. Requires an audio output device (such as a speaker or headphones)
for the contents to be heard. An initial subtype, basic, is defined
for this type.
video Video data. The subtype mpeg is often used. Typically, videos are not
transferred directly, but are read from an embedded object, such as a
JavaScript or Adobe Flash object.
application Any binary data. The subtype octet-stream is typically used.

Distributed Authoring and Versioning (DAV)

Distributed Authoring and Versioning is a set of extensions to HTTP/1.1.  This open standard provides the ability to lock and unlock files and also assign versions to these files.

Distributed Authoring and Versioning (DAV) is built on HTTP/1.1, and can stand alone. A powerful capability of DAV is the ability to query the server for file names, time stamps, sizes, serverside copy and move.

Compiled Language vs. Interpreted Language

Programming languages generally fall into one of the following categories, Compiled Language or Interpreted Language. Compiled Languages are reduced to a set of machine instructions before being saved as an executable file. In general, a compiled program will execute faster thatn an interpreted program because the Interpreted program must be reduced to machine language at runtime.

Interpreted languages that code is saved in the same format and developed in. Interpreted languages offer more flexability like modifying themselves by adding or changing functions at runtime. Development time can also be reduced with interpreted languages, because the application dose not need to be compiled before each test.

In theory any language can be compiled or interpreted. The Microsoft .NET language is compiled to Common Intermediate Language (CIL) which is compiled into native machine code.