Showing posts with label NOTES. Show all posts
Showing posts with label NOTES. Show all posts
SOFTWARE PROCESS

  • A process is distinct from the product it produces: a product is the outcome of executing a process in a software development project
  • As mentioned earlier, software engineering focuses on process, to help transform software development into an engineering discipline
  • Premise: A proper process will help achieve a project's objectives of achieving high quality and productivity.
    • Process: a series of actions or steps taken in order to achieve a particular end
    • Software Process: An ordered set of steps to produce a high quality software system
    Since there are many different activities that occur during a software development project, it is better to think of a software process as being composed of sub-processes or component software processes. Each of these processes may be performed by different people playing different roles.

  •  A set of activities whose goal is the development or evolution of software.
  •  Generic activities in all software processes are:
    • Specification - what the system should do and its development constraints
    • • Development - production of the software system
    • • Validation - checking that the software is what the customer wants
    • • Evolution - changing the software in response to changing demands.
    • For any software development project, there are two main component processes
      • Product Engineering Process: Charged with creating the software system
      • Process Management Process: Charged with monitoring the other processes and improving them over time
    • The product engineering process can then be broken down into several other processes, including
      • Development Process: Specifies the order of development activities and the products produced by each step
      • Project Management Process: Charged with planning and controlling the development process
      • Software Configuration Management Process: Charged with managing the evolution of software artifacts
      • Requirements Change Management Process: Charged with handling change during the development process
      • Inspection Process: Charged with specifying the steps to inspect artifacts created during development
      • …
    • These processes and their relationships are shown below:



    Different people with different roles will collaborate to perform these processes
    • Managers will work on the project management process
    • Designers, developers, and testers will work on the development process, the change process, and the inspection process
    • Build managers (configuration controllers) will work on configuration management

Textbooks tend not to give definitions, but instead spend their introductory chapters explaining characteristics of the discipline. Interesting phrases include:

– A discipline whose aim is the production of quality software, delivered on time, within budget, and satisfying users' needs.

 – The specification, development, management, and evolution of software systems.

– Designing and developing high-quality softwar


DEF--
"The computer science discipline concerned with developing large applications. Software engineering covers not only the technical aspects of building software systems, but also management issues, such as directing programming teams, scheduling, and budgeting."

DEF--

"Software engineering is an engineering discipline that is concerned with all aspects of software production. Software engineers should adopt a systematic and organised approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available."









• Software Engineering
– An engineering discipline that includes these processes
and products:
– Software Engineering Management
– Software Requirements Analysis
– Software Configuration Management
– Software Design
– Software Construction
– Software Testing
– Software Engineering Infrastructure
– Software Engineering Process
– Software Evolution and Maintenance
– Software Quality Analysis


Software Engineering: Today and Tomorrow
• Information Technology Worker Shortage

– Companies in nearly every industry are reporting serious
difficulty in finding and/or retraining qualified IT staff.
– The Bureau of Labor Statistics growth projections for the
three core occupational classifications of IT workers
(computer scientists and engineers, systems analysts, and
programmers) –
• indicate that between 1996 and 2006, the US will require more than
1.3 million new Information Technology workers, an average of
about 137,800 per year


Leonard Kleinrock
Software Engineering
(term wasn’t used)
• Computer Scientists (often 
did both hardware and 
software) 
• Internet Forefathers


– Leonard Kleinrock, a computer scientist at UCLA, stands next to the refrigerator-sized computer that made the first-ever connection in 1969 to what was to become the Internet. (AP).

– The UCLA team of graduate students in 1969 included future Internet leaders like Vinton Cerf, who later helped create the Internet's common language (TCP/IP), and the late Jonathan Postel, who pioneered its address system

– Robert Kahn – computer languag creator (TCP/IP)
– Lawrence Roberts - the designer and developer of ARPANET                                                                         
At the command prompt, you enter commands by typing their names followed by options and arguments.Most modern computers use a graphical user interface GUI, which allows users to more intuitively access programs system. At the command prompt, you enter commands by typing their names followed by options and arguments.Most modern computers use a graphical user interface GUI, which allows users to more intuitively.

CMD is a three-letter abbreviation that could mean, depending on context:

A common abbreviation for command (especially used in a computer context)
Canis Major Dwarf - galaxy orbiting the Milky Way.
Cable Mágico Deportes, a Peruvian sports television network
Catastrophe à moyens dépassé (French); "disaster without sufficient rescue means", see Orsec plan
Center for Media and Democracy
Certified Medical Dosimetrist
Chairman/Chairperson and Managing director of a company; a managing director who is also the chairman
Conceptual Data Model, A conceptual schema, or conceptual data model, is a map of concepts and their relationships used when designing databases, for example, a conceptual schema for a karate studio would include abstractions such as student, belt, grading and tournament
Congenital muscular dystrophy
cmd.exe; the command line interpreter for OS/2 and Windows NT-based operating systems, or the CMD files which this interpreter uses
The CMD file, an executable format used by CP/M-86.
Creative Micro Designs; a computer hardware company
California Micro Devices; a manufacturer of integrated circuits
Cincinnati Mighty Ducks; a hockey team
Communication & Multimedia Design; a College Course
Common Metre Divided; a meter used in many hymns
change main device; a computer command
color-magnitude diagram; used in astronomy
The Command key on Apple keyboards
Cmd.xxxx - British government "Command Papers". The Cmd. designation ran from 1919-1956. eg Cmd.3362 is the Report on Health for 1929/1930, but Cmnd.3362 is the British Steel Report 1967.
Camden Road railway station, England; National Rail station code CMD
Of personal computers run Windows with versions including Windows 3.x, 95.x, NT, 2000 and XP. Windows versions 3.x and earlier were actually operating environments - graphical interfaces that ran on topWell, Linux commonly pronounced IPA: /lnks/ in English; variants exist is a Unix-like computer operating system. Linux is one of the most prominent examples of free software and open source...


The purpose of an operating system is to:
1. control all the hardware components that are part of your computer.
2. manage a computer's ability to do several things at once
3. provide a base set of services to programs to keep software manufacturers from have to reinvent the wheel a million times for the same thing.

1) Linux is a open-source OS.People can change code and add programs which will help to use your computer better. It's designed as a reaction on the monopoly position of windows. you can't change any thing in windows. you can't even see which processes do what and build your onw extension. Linux wants the programmers to extend and redesign it's OS time after time, so it beats Windows or at least is as good as windows, but whit open-source, so you can see what happens and you can edit the OS.

2) All the flavors of Windows come from Microsoft, the various distributions of Linux come from different companies (i.e LIndows , Lycoris, Red Hat, SuSe, Mandrake, Knopping, Slackware)..

3) Linux is customizable in a way that Windows is not. For example,NASlite is a version of Linux that runs off a single floppy disk and converts an old computer into a file server. This ultra small edition of Linux is capable of networking, file sharing and being a web server..

4) For desktop or home use, Linux is very cheap or free, Windows is expensive. For server use, Linux is very cheap compared to Windows. Microsoft allows a single copy of Windows to be used on only one computer. Starting with Windows XP, they use software to enforce this rule (activation). In contrast, once you have purchased Linux, you can run it on any number of computers for no additional charge. .

5) You have to log on to Linux with a userid and password. This is not true of Windows. Typically Windows 9x does not ask for a userid/password at boot time and, even if it does, this can be easily bypassed. In general, Windows NT, 2000 and XP do require a userid/password to log on. However Windows 2000 and XP can be configured with a default userid and password so they boot directly to the Windows desktop. Windows XP, 2000 and Linux all support different types of users. Windows XP Home Edition supports Administrator class users that have full and total access to the system and restricted users that, among other restrictions, can't install software. Windows XP Pro and Windows 2000 support additional levels of users and there are groups of system privileges that can be assigned to a particular user. In Linux, the user with full and total access is called root, everyone else is a normal user. The options for Linux security privileges don't seem to me to be as robust as in Windows 2000 and XP Pro, they are focused on files and directories (can you read, update and execute files). Linux has a concept of a group of users that Windows does not, but again the privileges associated with a group are all file/directory related. ..

6) Linux has a reputation for fewer bugs than Windows ..

7) Windows must boot from a primary partition. Linux can boot from either a primary partition or a logical partition inside an extended partition. Windows must boot from the first hard disk. Linux can boot from any hard disk in the computer. 8) Windows uses a hidden file for its swap file. Typically this file resides in the same partition as the OS (advanced users can opt to put the file in another partition). Linux uses a dedicated partition for its swap file (advanced users can opt to implement the swap file as a file in the same partition as the OS).

Well, RISC stands for "Reduced Instruction Set Computing,"and is pronounced "risk." It is arguably the fastest and most effiecient microprocessor technology available today. The RISC architechture is an improvement upon the CISC (Complex Instruction Set Computing) architecture used in the original Intel Pentium chips. In 1974, John Cocke of IBM Research was working on making a faster version of the CISC chip and came up with a design that significantly reduced the number of instructions need for performing computations. The new design was not only faster than the CISC architecture, but the chips were also smaller and less expensive to manufacture. Motorola's PowerPC chips (such as the G4 in Power Macs) are the most widely used RISC-based chips. Intel has slowly been integrating RISC technology into its chips, but they still are mostly CISC-based.