Share
Explore BrainMass

Software Development

In the beginning of digital computing in the early 1940s, operation instructions were physically wired into them. However, the inflexibility of this design made it a short-lived one. Engineers invented 'stored program architecture' to combat this inflexibility, achieved by the separation of software from hardware. This abstraction is what makes the complexity of modern computing possible.

Software development encompasses the entire process of creating a software product and getting it working for and beyond release. However, the term 'software development' more often refers to the actual programming wherein an individual or team writes and maintains a stretch of sourcecode. Other activities vital to software development include research, new development, prototyping and deploying updates. In general, software is developed for one (or more) of 3 reasons:

  • personal use
  • to meet the perceived needs of a group of potential users
  • to create a piece requested specifically by a client
    • as a subsection of this, embedded software development is the development of software to be integrated into another product for control or reporting problems

There are a range of ways to go about developing software, and much of it depends greatly on resources available and personal work style and tastes. However, all methods include some form of what is known as the software development lifecycle - namely, design, implementation, testing, deployment and debugging/maintenance. Problem analysis, market research and gathering resources are all equally necessary steps but they tend to occur before the actual development begins, as preparation and are therefore not really included in the lifecycle in their own right, but occasionally as a subsection of the design step.

lifecycle showing requirement analysis, design, implementation, testing and evolution

The lifecycle is not standardized as such; the above separates pre-design steps out and lumps deployment and maintenance under 'evolution'. [ Credit: Cliffydcw ]

Below are some of the common approaches to software development:

  • waterfall development - highly structured approach based on engineering practices wherein steps are clearly laid out and completed in strict order, involving the big design up front idea. Progress is tracked carefully through many forms. This method is not terribly flexible and is prone to running over money and time budgets.
  • incremental development - combines a linear and iterative approach for a series of mini-waterfalls that are reassessed as the project is assembled tiny prototype by tiny prototype to achieve a final prototype of the entire system
  • rapid application development - an approach specializing in speed, RAD prioritizes requirements to release early betas and the like for user input before even a first full release in order to spend their focus tailoring the software to the desired end users' biggest demands first. 
  • slow programming - an alternative to RAD which prioritizes as bug-free a first release as possible, meaning each part undergoes significant in-house testing and debugging before being exposed to the public.

Categories within Software Development

Debugging

Postings: 40

The process of finding and reducing the number of defects and unexpected behavior in a program.

Pseudocode

Postings: 105

A high-level description of what code is intended to do; like a sketch, for programmers.

Random Number Generation

Postings: 38

True randomness is difficult to achieve; there are both physical and software-based methods of attempting it.

Memory Management

Postings: 130

A computer's memory is often managed based on a strict protocol of instructions; i.e. an algorithm.

GridLayout GUI Program that Counts Number of Words

Using the GridLayout, write a simple GUI program that allows users to type in any long message and to display the number words when the button "Count Words" is pressed. Set the window frame size to 240 by 200. The gaps between the components on the layout are 5 px. Make the frame visible and exit on close but not resizable. Pl

Agile Manifesto + Four Fundamental Principles

Unit testing is the driving technology behind a software design technique termed Test Driven Development (TDD), which, in turn, is a component of the agile school of software development. In February of 2001, 17 thought leaders in object-orientation and software development got together in Snowbird, Utah, to discuss fundamental

Csharp programming

Develop a C# console application that implements an int array. Use 2 'for' loops, the first to fill the array using the Random class to generate random integers using the next method of the Random class and a second for loop to iterate through the filled array and print the values entered into the array by the random number gene

Datamax Program and Overtime Pay for Employees

Your manager has asked you to create a program that calculates overtime pay for all employees. Your program must take into account an employee's salary, total hours worked, and hours worked more than 40 in a week. It must then provide an output that is useful and easily understood by company management. Compile the code outl

Microsoft Project - Project Plan

Section 2: Project Plan Use Microsoft Project to create a project plan (summary and detailed) template. The project plan should: *Record all tasks, subtasks, resources, and time related to the project. *Outline the planning, analysis, design, and implementation phases. *Develop in accordance with the SDLC.

How to use Microsoft Word

1. A friend of yours has just started using Microsoft Word, and has e-mailed you requesting instructions on how to apply a first line indent to a paragraph. Create a list of instructions about how to configure a first line indent for a paragraph. 2. Modified and used the Normal style to create the research paper. List at leas

Create an efficient, well‐documented object‐oriented application to manage all of the job offers that an upcoming graduate is getting. All offers must include the company name and the number of miles from home.

Create an efficient, well-documented object-oriented application to manage all of the job offers that an upcoming graduate is getting. All offers must include the company name and the number of miles from home. There are three types of offers: - Part-Time employment (hours less than 40 at an hourly rate for 52 weeks), - Full-T

Create an efficient, well-documented object-oriented application to manage a list of non-profit organizations that will continually run like a kiosk-style application. The organizations only need to track a list of volunteers and total donations.

You are to create an efficient, well-documented object-oriented application to manage a list of non-profit organizations. The organizations only need to track a list of volunteers and total donations. The idea is to set up a kiosk-style application that will continually run, giving the user(s) the following choices: 1. Add a

How to start a spreadsheet in Excel 2012

I need help starting some Excel spreadsheets. I am not sure where to start, as I have never worked in Excel. Please see the attached PDF document for the details to help answer the questions.

Project Management Challenges

What do you consider to be two key challenges for software project managers? Explain your answer. (Provide references to the work and comment it + a personal conclusion to the work, length of 500 - 750 words. References do not count to the wording count)

Agile Software Development

1. "Agile Development" is a blanket term that covers a wide variety of software development practices many of which have been codified and documented. Select a published agile methodology (other than Scrum or XP as covered in class) and answer the following questions. a. Explain how the methodology meets the criteria in the A

SQLite - Grouping Records and Aggregate functions

Please see attached file. I have to use software SQLite, database attached along with questions 9.2 Grouping Records & Aggregate Functions Aggregate functions are used to calculate summary information. Let's assume that every product ordered from the company is supplied in a case of 12 items. An order for 50 units, fo

ERP and SCM

Distinguish between ERP and SCM software. In what ways do they complement each other? Discuss the need for, and ways to integrate, these products with other types of enterprise systems

Reasoning About Requirements

Comment on the following statements. Make sure to give citations for any works referenced. Statement 1 Requirements errors are the most expensive to fix when found during production but the cheapest to fix early in development. Statement 2 Missing requirements are the hardest requirements errors to correct. Statement

Entity Relationships in Visio

1) Read the following business requirements closely to determine the entities and relationships needed to fulfill the requirements. The nouns in the paragraph will tell you the entities that will be needed. The verbs in the paragraph will help you determine the relationships between the entities. Muscles Health Club Databas

Whistleblowing Ethics in Software Engineering

Hi! Could you help me for the question below: Which clauses in the Software Engineering Code of Ethics and Professional Practice support the legitimacy of whistle blowing? Which clauses in the Code may be violated by whistleblower, assuming the whistleblower is telling the truth?

Ethics in IT

1. List at least three benefits and three negative effects brought about by workplace automation. 2. A multinational corporation transfers a foreign employee to the United States on an L-1 visa. The foreign employee is a computer programmer, working alongside an American computer programmer doing the same work. Both programmers

Microsoft Dynamics vs. SugarCRM

Evaluate two software solutions for Customer Relationship Management to implement at your companies: Microsoft Dynamics CRM and SugarCRM. The following are some of the areas to evaluate in implementing such a solution as each offers different package levels: 1) Functionality: You are to implement modules to support Sales, Ser

Advantages and disadvantages of the open source and non-open source approach.

Open source extends the philosophy of openness from the architecture to the implementation detail. From management issues, system evaluation and assurance angles, discuss (you may use examples to support your arguments) the advantages and disadvantages of the open source and non-open source approach. With Scholarly Quotations

HIPPA

I have found that to date, the largest offense is looking into family records even though employees are warned not too and that this is a violation of that family member's HIPAA's rights. The organization has released many employees because of this violation. What are your thoughts about this issue. Elaborate on use of employers

Decision Making

Explain why Health care information systems (informatics) is important in decision making within an organization.

Computer Science

1. Should software licenses be dropped completely? Show references. 2. The hackers that perform distributed denial of service attacks on e-commerce sites: are they criminals, or are they heroes helping computer specialists discover faults within computer networks and systems? Show references. 3. Will the distinction betwee