Monday, July 16, 2018

Stage 4: Building or Developing the Product

Stage 4: Building or Developing the Product

In this stage of SDLC the actual development starts and the product is built. The programming code is generated as per DDS during this stage. If the design is performed in a detailed and organized manner, code generation can be accomplished without much hassle.
Developers must follow the coding guidelines defined by their organization and programming tools like compilers, interpreters, debuggers, etc. are used to generate the code. Different high level programming languages such as C, C++, Pascal, Java and PHP are used for coding. The programming language is chosen with respect to the type of software being developed.

Stage 5: Testing the Product

This stage is usually a subset of all the stages as in the modern SDLC models, the testing activities are mostly involved in all the stages of SDLC. However, this stage refers to the testing only stage of the product where product defects are reported, tracked, fixed and retested, until the product reaches the quality standards defined in the SRS.

Stage 6: Deployment in the Market and Maintenance

Once the product is tested and ready to be deployed it is released formally in the appropriate market. Sometimes product deployment happens in stages as per the business strategy of that organization. The product may first be released in a limited segment and tested in the real business environment (UAT- User acceptance testing).
Then based on the feedback, the product may be released as it is or with suggested enhancements in the targeting market segment. After the product is released in the market, its maintenance is done for the existing customer base.

  • Design Tools
    • IBM Rational Rose
    • MS Visio
    • MS Office
    • Argo UML
    • Magic Draw
    • Rational Software Architect (IBM)
  • Project Management tools
    • MS Project
    • MS Office
    • Customized Project Management tracking tools - for metrics
  • Configuration Management Tools
    • IBM ClearCase
    • VSS
    • SVN
    • AccuRev
    • Git
  • Java development tools (IDE)
    • IBM's VisualAge for Java development
    • Borland's Jbuilder for Java development
    • Eclipse is from IBM
    • Nebeans is from Sun/oracle
    • Spring source tool (STS)
    • IntelliJ from Idea
    • Rational Software Architect (IBM)
  • Code Review Tools
    • Code Collaborator
    • Cast
    • Eclipse
    • Sonar
  • Microsoft development tools (IDE)
    • Visual Studio
  • Application Servers
    • Jboss
    • Glassfish (Open Source)
    • Apache Geronimo Applications Server
    • IBM - WebSphere Application Server
    • BEA WebLogic Server
  • Web server 
    • Apache Web Server (65% applications are hosted on apache)
    • Internet Information Server (IIS) - 15% applications are hosted on IIS.
    • Nginx from Nginx hosts around 12% of applications.
    • GWS from Google (5%)
    • Zeus Web Server
    • iPlanet Web Server
    • Roxen Web Server
    • Jigsaw
    • JRun
    • Sambar Server
    • Sun Java System Web Server
  • Portal Server
    • Websphere portal server
    • Oracle WebCenter
    • Adobe LifeCycle
  • Middleware tools
    • Mule ESB
    • IBM Tivoli
    • Snaplogic
    • Dell Boomi
  • SOA Based tools
    • SalesForce
    • Amazon Web Services (AWS)
    • Windows Azure
    • Google
  • BPM Modeling tools
    • JBPM
    • Activiti
    • WPS Websphere process server
  • Build Tools
    • Apache Maven is the build engine
    • Rake
    • Ant  +Ivy
    • Gradle
    • Gant
    • Buildr
  • Agile Project Management Tools
    • Rally
    • Jira Agile
    • Redmine
    • Extreme Planner
    • VersionOne
    • TargetProcess
    • AgileTrack
    • Bamboo
  • Testing Tools
    • QTP/UFT
    • RFT
    • Test Manager
    • Selenium
    • Concordian
    • JMEter
    • Jprofiler
    • Jprobe
    • Loadrunner
  • Defect Tracking Tools
    • JIRA
    • ClearQuest
    • Rally -  Online service for agile project management, requirements and test case management, and defect tracking. Consulting for agile project management. Located in Boulder, Colorado, USA
    • BugZilla
  • Continuous Integration
    • Hudson
    • Cruise Control
    • TFS (MS First Sight)
  • Hot deployments
    • JRebel
  • Collaboration tools
    • Zipline,
    • Basecamp
    • Sharepoint

Stage 1: Planning and Requirement Analysis

Requirement analysis is the most important and fundamental stage in SDLC. It is performed by the senior members of the team with inputs from the customer, the sales department, market surveys and domain experts in the industry. This information is then used to plan the basic project approach and to conduct product feasibility study in the economical, operational and technical areas.
Planning for the quality assurance requirements and identification of the risks associated with the project is also done in the planning stage. The outcome of the technical feasibility study is to define the various technical approaches that can be followed to implement the project successfully with minimum risks.

  • Requirement Tools: with the help of these tools, requirements of the system will be
    • IBM Requisite Pro - I believe this is the most widely used tool.
    • Contour - J2EE-based requirements management tool by Jama Software.
    • Cradle - Systems engineering and requirements management tool by 3SL.
    • Dimensions RM   - Requirements Management Tool by Serena Software.
    • Concerto   - Concerto is a software project and requirements management platform by Parasoft.
    • Analyst Pro   - Software Requirements Tool by Goda Software

Stage 2: Defining Requirements

Once the requirement analysis is done the next step is to clearly define and document the product requirements and get them approved from the customer or the market analysts. This is done through an SRS (Software Requirement Specification) document which consists of all the product requirements to be designed and developed during the project life cycle.

Stage 3: Designing the Product Architecture

SRS is the reference for product architects to come out with the best architecture for the product to be developed. Based on the requirements specified in SRS, usually more than one design approach for the product architecture is proposed and documented in a DDS - Design Document Specification.
This DDS is reviewed by all the important stakeholders and based on various parameters as risk assessment, product robustness, design modularity, budget and time constraints, the best design approach is selected for the product.
A design approach clearly defines all the architectural modules of the product along with its communication and data flow representation with the external and third party modules (if any). The internal design of all the modules of the proposed architecture should be clearly defined with the minutest of the details in DDS.

Tributaries of CSE

A - C

  • Analyzing algorithms
  • Analyzing data relationships
  • Animations
  • Applying mathematics and the scientific method to computer problems
  • Assembly
  • Assessing the needs of end users
  • CAD/CAM 
  • C
  • C++
  • Communication
  • Computer Hardware Engineer
  • Creating, modifying and executing a makefile
  • Creating a code portfolio showcasing programming projects
  • Creativity
  • Cultivating relationships with customers and/or internal constituent.

D - L
  • Database Administrator
  • Debugging programs
  • Detail orientation
  • Documenting coding changes
  • Digital Marketing
  • Editing files with  MS-Office
  • Engaging in lifelong learning
  • Evaluating sorting, searching, and filtering methods
  • Explaining technical concepts
  • Java
  • JavaScript
  • LaTeX
  • Learning new computer languages
  • Logical reasoning
M - P
  • Maintaining confidentiality
  • Memorization
  • Microsoft Office
  • Modifying algorithms
  • Navigating and manipulating filesystems within Unix
  • Note taking
  • Planning
  • Presentation
  • Problem-solving
  • Project management
  • Prolog
Q - W

  • Research
  • Retrieving data through advanced querying
  • Scala
  • Software Developing
  • Standard ML
  • Statistical
  • Statistical modeling of network traffic
  • Strategic thinking
  • Systematizing
  • Testing hypotheses
  • Testing software
  • Time management
  • Tolerating failure
  • Verbal communication
  • Web design and Development
  • Written communication
  • Writing shell scripts

What is Computer Science Engineering

Computer engineering is a driving force behind innovation and technologies that are changing the world, pushing computing power and capabilities to the edge. Bridging hardware (e.g. microprocessors, tablets) and software, computer engineering has implications across many industries, ranging from technology to healthcare, green energy to aeronautics. The following guide serves as a high-level overview of the computer engineering profession, including insight into various career paths, emerging industries, employment opportunities, companies that are hiring computer engineers, skills and knowledge categories, as well as tips for preparing for computer engineering careers.


Computer engineering is an interdisciplinary field of study, one that combines electrical engineering and computer science disciplines into a specialized professional area of practice. Smaller; fastest; cheaper. Smarter; flexible; powerful. In short, computer engineers make computers and computing systems better.
Consider, for example, the history of the Intel processor. Introduced in 1971, the Intel 4004 processor had 2,300 transistors and produced clock speed of 108 KHz (108,000 cycles per second). Compare the performance of the 4004 microprocessor to Penryn, the microprocessor Intel introduced in 2007: with 820,000 transistors and a clock speed greater than 3 GHz, Penryn operates at approximately 3 billion cycles per second. That’s an improvement of 27,777% – in 36 years. This type of computing power and performance improvement has spearheaded the information revolution – driving transformative developments in computers, video, imaging, 3D content, power management, animation, home automation, auto manufacturing, mobile devices and phones, communication, and more.
Broadly, computer engineers design hardware for computing systems, network and computer architecture, design software for applications, analyze and design microprocessors, build interface systems, and work with microcontrollers and circuit designs. In turn, computer engineering has wide applications, impacting areas such as cybersecurity, wireless networking, design automation, computer networks, mobile computing, robotics, embedded systems and machine intelligence. At the career level, computer engineering offers two central paths – hardware and software engineering – and multiple sub-specialty or areas of concentration, such as the following:


Artificial Intelligence Designing computer systems that simulate human thinking, learning, and reasoning abilities.
Computer Architecture Designing and developing new, more powerful computing systems.
Computer Design Research, design, and development of electronic computer components, such as microchips, microprocessors, circuit boards, etc.
Operating Systems and Networks Designing and developing software and network systems.
Robotics Designing and developing robotic systems used in a variety of industries (e.g. industrial production).
Software Applications Designing and developing computer software to research and solve problems outside of the computer engineering field (e.g. medicine).

Stage 4: Building or Developing the Product

Stage 4: Building or Developing the Product In this stage of SDLC the actual development starts and the product is built. The programmin...