Showing posts with label Software Engineering. Show all posts
Showing posts with label Software Engineering. Show all posts

Wednesday, April 15, 2009

Tips Trick Domain and Active Directory Stuff

Links to pages about Windows Domains and Active Directory. Will be more later (when and if I get the time!). Generally, the information is about business environments and some may be applicable when there isn't actually a Windows Domain. Sorry, I don't know squat about Small Business Server, so see the SBS newsgroups on the msnews.microsoft.com news (NNTP) server for SBS specific info. Generic Rules for User Accounts, Groups, Permissions and Group Policy Objects in a Windows Domain.

Convert SID to name and vice-versa.

Below are links to a pair of downloadable Word documents about how to create a Windows 2008 Active Directory Domain. They explain basic concepts and contain tips trick for those that are new to Windows Domains. Although the detailed instructions are specifically for the Windows Server 2008 user interface, the concepts (with a few exceptions) apply to Windows Server 2003 as well. I've included explanations of the "why" as well as the "how to" as a sort of tutorial. There are many "Comments" that will only be visible if you have "Original Showing Markup" or "Final Showing Markup" selected (Word 2007 in the Review tab on the Ribbon - in earlier versions the Reviewing Toolbar).

Instructions are included that are specific to a Virtual Machine environment, but using Virtual Machines is definitely not a requirement, although useful. The files are in both the 2007 Office format (docx) and older Office format (doc). If you have an older version of Microsoft Word, you can download (free) an Office add-in so you can open the 2007 format files - see http://support.microsoft.com/kb/923505 or http://www.microsoft.com/downloads/details.aspx?familyid=941b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=en.

I don't know why, but when I download the Office 2007 format files with IE 6 or 7, they get the file extension ".zip" instead of ".docx". However, they do open correctly in Word 2007. Change the file extension from .zip to docx in the download dialog (or after the download is complete). I know that the Word 2007 file format is a "zip" file, but that does not exactly explain why IE changes the file extension from .docx to .zip. If I look at this site with an ftp client, it tells me that these files actually have the .docx file extension.]

Concepts about and instructions for installing Windows Server 2008, setting up basic networking in a home or small business type environment for testing/experimenting, installing Active Directory Domain Services, creating a basic Organizational Unit structure:

  • 133 KB WindowsServer2008BaseInstall.docx
  • 185 KB WindowsServer2008BaseInstall.doc

Building on the Domain built in the above document, adds sets of user accounts and groups, delegates administrative authority, builds basic set of Group Policy Objects, shared folders and printers.

  • 106 KB GettingStartedwithWindows2008Domains.docx
  • 213 KB GettingStartedwithWindows2008Domains.doc

Sunday, March 29, 2009

Programing Algorithm Structure

Algorithm Concept
Algorithm is a sequential logical stages to systematically solve a problem. Problem may be anything, but noted that all problems must have an initial condition prior to work on its algorithm. Algorithm concept may be similar to recipe. A recipe usually has a list of needed materials or spices, and sequence and how to build or to cook it. If the material is not available or not calibrated then the recipe may not be built / cook. Likewise if cooking stages is not sequential, a correct result will not be received. Different algorithms may be applied to a problem with same condition. Algorithm complexity level may be measured by the amount of computation to solve a problem. In general, algorithm with short execution time to solve a problem would have low complexity, while algorithm with long execution time may have much higher complexity.

How to write Algorithm
There are three (3) methods to write an algorithm, namely,

 

  • Structured English (SE), SE is a good enough tool to depict an algorithm. SE is basically an English, but we can modify it using Indonesian and call it Structured Indonesian (SI). The algorithm such as in Example 5.10 and 5.11 are written in SE. Since it uses daily language, SE is suitable to be used in communicating algorithm to software users.
  • Pseudocode, Pseudocode resembles SE. Due to its resemblance, SE and Pseudocode are considered to be the same. Pseudo means imitation or resembled, whereas code refer to program code. Thus, pseudocode means code that resembles the instruction of the program code. Pseudocode is based on the the actual programming language, such as, BASIC, FORTRAN or PASCAL. PASCAL  based pseudocode is often used. Sometimes, pseudocode refers as PASCAL-LIKE algorithm.
  • Flowchart, Flowchart is scheme / chart that shows the program flow in logical manner. Flowchart is a tool to show algorithm using certain notations / symbols. The following section will discuss it in a more detail. There are several important symbols used to show an algorithm as shown in Figure 1.

image This notation is known as Terminator to show the beginning and the end of an algorithm

 

image This notation is known as Data to represent the data input or output or to represent data entry operation or printing the result.


image This notation is known as Process to represent a process.

 

 

image This notation is known as Decision to represent condition selection in a program


image This notation is known as Preparation to set starting value, end value, the increase / decrease value of the counter.

 


image This notation is known as Predefined Process to show the process is done by other subprocess, such as, procedure, sub-procedure, function.

 

image This notation is known as Connector to show continuation of flowchart from pne page to another page.

 

image This notation is known as Arrow to show the data flow from one process to another process.

 

 

Figure 1. Symbols used in flowchart.

imageThere are two (2) types of flowchart, namely, program logic flowchart and detailed computer program flowchart. The program logic flowchart is used to show each step of the computer program in a logical manner and usually is prepared by an system analyst. Whereas the detailed computer program flowchart is used to show the detail instruction- of the computer program and usually prepared by a programmer,it is shown in Figure 2.

 

 

Figure 2. Program flowchart.


Sequential Algorithm.
image There are three (3) foundation in algorithm structure, namely, sequencing, branching and looping. An algorithm will usually uses the three (3) structures to solve a problem. In this section, we will firstly discuss
sequential algorithm structure. The sequential structure is similar to a car run in a straight road and no turn or intersection as shown in Figure 3. The car will pass kilometers of road until it reaches its destination.

 


Figure 3. Car travels in straight road.

The sequential structure consists of one or more instruction. Each instruction is sequentially executed based on its sequence in source code, and executed after one instruction is completed. Instruction sequence sets the final stage of the algorithm. If the sequence is changed, the final result may be changed. According to Goldshlager and Lister (1988) the sequential structure follows the following rules:

  • Each instruction is executed one by one.
  • Each instruction is carried out very precise, none is repeated.
  • Instruction sequence in the process is the same is action sequence in the algorithm.
  • At the end of the final instruction is the end of the algorithm.

Branching Algorithm
image A program will not always follow a sequential structure, sometimes we must change program sequence and jump to certain line in the program. This is known as branching or decision process. This occurs when the car reaches an intersection as shown in Figure rigth. The driver must decide to turn left or right.

In the branching structure, a program will branched as the required condition is met. In such process, decision symbol in the flowchart must be used. Decision symbol is meant to test a condition. The result will determine which branch is used.

Looping Algorithm
image In many cases, we encounters job that must be repeatedly done. One of the simplest example is a car racing as shown in Figure  In car racing, participant must follow the circuit tracks as set by the race rule. Whoever the fastest in reaching the finish line, he wins.

In creating a computer program. We sometimes must repeat one or a group of instruction to archive the required result. In computer, a repetition process is easy to carried out. This is due to the advantage of computer as compared to human to do task or repeated instruction without tired, bored, or lazy. Compared to the race car driver, at one time he must be feeling tired driving his race car in circles.

The looping algorithm consists of two parts, namely,

  1. Repetition condition, the requirement to be met to carry out the repetition. This condition is usually stated in Boolean expression that must be tested whether being true or false.
  2. The repetition body (the loop body), that is one or more instructions that will be repeated.

The repetition structure is usually started by an initialization section and termination section. Initialization is the instructions that are carried out prior to repetition. Initialization is usually used to provide initial value to the variables. Whereas termination instruction is carried out after the completion of the repetition.

There are several forms of the repetition, each with its own requirement and characteristics. Several forms may be used for the same case, but some of the form may suitable for a certain case only. The selection of the form may influence the correctness of the algorithm. The correct repetition form depends on the problem.

image Repetition using For is the oldest form of repetition in programming language. Almost all programming languages provide this method, despite may be different in syntax. In For structure, we need to know how many times the the loop bodies will be looped. In this structure we normally use a variable, namely, loop counter, to take note the number of loop has been done. The value of loop counter may be increasing or decreasing during repetition process. General flowchart using For structure is shown in Figure 4. Please note the usage of symbol preparation in the flowchart.

Figure 4. Repetition algorithm using For.

In execution of repetition using for, the following steps must be followed:

  1. Initialized counter value.
  2. Checked whether counter is larger than its maximum / final value. If true then exit the repetition process. If the counter is decreasing, check whether the counter is lower than its minimal / final value. If true then exit the repetition process.
  3. Execute the statements / instructions in the loop body.
  4. Increase / decrease the counter in accordance with the increment value. If no increment value, use 1 as default.
  5. Repeat step no 2.

It is import to initialized counter at the beginning of the loop. If we try to change final value in the loop body, it would give not much impact into how many repetition to be carried out.

Tuesday, March 24, 2009

Software Engineering Method – Chapter 2

Chapter2_1

As we worked with the computer shown in Figure 2.1., we need a series of stages and certain methods in order to be able to produce aim for our objectives. Likewise in the software engineering, it needs certain stages to be productive. A successful software engineering needs not only strong computation capacity like algorithm, programming, and database but also strong, but also determination in meeting the goal, resolution method identification, development method, goal identification, resources requirement identification, and other factors. Such matters are related to software engineering methods.

The content of this chapter not within the standard Software Engineering competence. However, the writer think it would be beneficial to know how to carry out software engineering and methods that normally being used. Several part of this chapter will likely difficult to understand, teacher may be needed to explain. The summary of the chapter is written at the end of the chapter. (Source: Microsoft Office 2007 Clip Art)

 

OBJECTIVES
After you learn this chapter, you should be able:

  • Understand the general characteristics of the process model in software engineering.
  • Name several models of the software engineering.
  • Know principles from the method waterfall, prototyping, and unified process
  • Understood the stages in the software engineering.

2.1 SOFTWARE ENGINEERING PROCESS MODELS

Chapter2_2

There are many models were developed in Software Engineering to help the process of software development these models generally refer to the system development process model that was known as System Development Life Cycle (SDLC) as shown in Figure 2.2. Figure 2.2. System Development Life Cycle (SDLC). Each developed model has its own characteristics. However, in general, these models will fall into the following categories, namely:

  • Need for clear definition of the problem. Main input in each software development model is in clear definition of the problem. The clearer the definition the better for problem solving processes. Thus, understanding the problem as explained in Chapter 1, is an important part of a software development model.
  • A structured development stages. Although software development models may have different pattern, usually these models followed a general pattern of analysis . design . coding . testing - maintenance.
  • Stakeholder plays a very important role in the whole of the development stage. Stakeholder in the software engineering may be the user, the owner, the developer, programmer and people who are involved in the software engineering.
  • Documentation is an important part of software development. Each the stage in the model usually produces several articles, the diagram, the picture or other forms that must be documented and must not separated from the produced software.
  • The output of software development processes must have an economic value. Although the value of software may be difficult to measure in terms of money. The effect of software usage give an added value to the organization. This could be in form of declining operating cost, efficient use of resources, increase in profit, improving organization image, etc.

There were many software development models, including The Waterfall Model, Joint Application Development (JAD), Information Engineering (IE), Rapid Application Development (the COUNCIL) including Prototyping, Unified Process (UP), Structural Analysis and Design (SAD) and Framework for the Application of System thinking (FAST). This book will discuss three (3) development models, namely, The Waterfall Model, Prototyping, and Unified Process (UP).

2.1.1.The Waterfall model
The life-cycle model is the main model and the foundation of many models. One of the models that is globally known in software engineering is The Waterfall Model. There are five (5) main stages in The Waterfall Model as shown in Figure 2.3. Known as waterfall since the process stage diagram resembled the stratified waterfall. The brief stages in The Waterfall Model are as follows:

  • Investigation stage is to determine whether a problem happening or is there an opportunity to develop an information system. In this stage the feasibility study must be carried out to determine whether the developed information system would be an appropriate solution.
  • Analysis stage aim to look at the user and organization requirement as well as analyzing the available condition before the application of the new information system.
  • Chpter2_3

    Design stage determine the detail specification
    of the information system components, such as, human, hardware, software, network and data, and information products that in accordance with
    results of the analysis stage.

  • Implementation stage is to get or to develop hardware and software (program coding), carried out testing, training and migration to the new system.
  • Maintenance stage carries out during the operation of the information system. In this stage, monitoring process, evaluation and improvement when being needed are carried out.

2.1.2 Prototyping model
Prototyping is one of software engineering approach that directly demonstrated how a software or software components will work in its environment before the actual construction stage is carried out (Howard, 1997). Prototyping model could be classified to several types as shown Figure 2.4.Chapter2_4

  • Reusable prototype: Prototype that will be transformed to the final product.
  • Throwaway prototype: Prototype that will be thrown away as it completes its job.
  • Input/output prototype: Prototype that was limited to the user interface.
  • Processing prototype: Prototype that covered the maintenance file the foundation and processes of the transaction.
  • System prototype: Prototype that took the form of the complete model from software.

The stages in prototyping is normally an accelerate stages. The main strategy in prototyping is to build the easiest first and deliver to the user as soon as possible. Harris (2003) divided prototyping in six stages as being seen in the Figure 2.5.
The stages could be briefly explained as follows:Chapter2_5

  • Identification of the candidate prototyping. The candidate in this case covers user interface (menu, dialogue, input and output), main transaction file, and functions of basic processing.
  • Engineering of prototype with help software like word processor, spreadsheet, database, graphics processor, and CASE (Computer-Aided System Engineering) software.
  • Test prototype to confirm prototype able to undertake demonstration purposes.
  • Prepare prototype USD (Userfs System Diagram) to identify parts of software that would be prototyped.
  • Evaluate prototype with the user and carried out changes if being needed.
  • Transform prototype into fully operated software and remove unnecessary codes, add needed programs, repeatedly improvement and test the software.

2.1.3 Unified Process and Unified Modeling Language
Unified Process (UP) or sometimes known as Unified Software Development Process (USDP) is the framework of development processes that use-case-driven, focus on software architecture, iterative and easy to grow (Alhir, 2005).

This framework is a relatively new in software development methodology. UP could be applied in various project scale, from small up to large scale. Short description of the four (4) stages in UP are as follows:

  • Inception. This is the earliest stage that assess the carried out software project. It aims to get an agreement from stakeholders on its goal and project funding.
  • Inception. This is the earliest stage that assess the carried out software project. It aims to get an agreement among the stakeholders on the objectives and project funding.
  • Elaboration. The stage's objective is to get the picture on the general requirement, the condition and its main functions. This is important to know project risks, including software architecture risk, planning risk, and implementation risk. Despite its early stage, software engineering activities including business modeling, requirements, analysis and design are performed through iterative processes.
  • Construction. This stage's objective is to construct the software to be used. The focus of this stage is to determine the level of priority in its requirement, its specification, in-depth analysis, the solution design to meet the requirement and the condition, coding and testing of the software. If possible, do beta testing to get early input from the user.
  • Transition. The focus of this stage is to deliver the software to end user. Software would officially tested by both competent beta tester as well as the end users. Several activities, such as, data center migration, end user and staff training, should be performed in this stage.

In software development based on UP, UML (Unified Modeling Language) is normally used. Although UP requires the use of UML, ULM can be use in various methods including other field out side information system field. UML is a standard modeling language and a collection of modeling techniques to specify, to visualized, to construct as well as to document the work during software development (Fowler, 2004). UML was born from in merging of many object oriented graphics based modeling languages developed in the end of the 80's and early 90's.

UML is simply used to draw the sketch of the system. The developer used UML to send several software aspects through graphic notation. UML defined notation and the semantics. Notation is a collection special forms that has certain meaning to depict various diagrams of software and the semantics defined how these forms could be combined. There are several kind of diagrams that are provided in UML, including:

  • Use-case diagram. This diagram is used to show the use-software interaction.
  • Activity diagram. This diagram is used to show the behavior of the software.
  • Class diagram. This diagram is used to show class, feature, and relations. his diagram, object oriented approach plays an important role.
  • Sequence diagram. This diagram is used to show the interaction among objects with the emphasis on process sequence or events.
  • State machine diagram. This diagram is used to draw how an event change an object in its lifetime.
  • Component diagram. This diagram is used to show the structure and the component connection.

2.2. STAGES IN SOFTWARE ENGINEERING
As described, despite different approaches, models have some similarities in using the following pattern, namely, stage analysis-design-coding(construction)-testing-maintenance.

2.2.1. Analysis
System analysis is a problem solving technique that break a system into smaller components to examine or to evaluate the component performance and its interaction to reach its objectives.

The analysis may be a crucial part of software engineering processes. The next processes will be highly depend on the analysis results. The brief stages in software engineering analysis is shown in Figure 2,7.  Chapter2.7

One of the most important part that usually carried out in the analysis stage is the business process modeling. Process modeling is a model that focused in all processes in the system that transform data to information (Harris, 2003). Process modeling shows data flow that enter and exiting in a process. This model is usually depicted the Data of Flow Diagram (DFD). DFD describe man, process and procedure interaction in transforming data into information.

2.2.2. Design
Software design is the task, the stage or the activity that focused on the detail specification of a computer based solution (Whitten et.al, 2004).

Software design often refers as physical design. While system analysis stage stress on business aspect, software design focuses on technical and implementation side of a software (Whitten et.al., 2004).

The main output from software design stage is the design specification. The specification covers the general design specification for the system's stakeholders and detailed specification to be used in the implementation stage. The general design specification contains the general picture of the software for the stakeholders. USD diagram on the software is normally the important point in this stage. The detail design specification or the detail architectural software design is needed to do system design so as to have a good construction, an exact and accurate data processing, valuable, user-friendly and has a good foundation for further development.

The architectural design consists of the database design, the process design, the user interface design including input design, output and report form, hardware design, software and the network. The process design is the continuation of process modeling that carried out in the analysis stage.

2.2.3. Construction
The construction is the stage that translate the logical and physical design into computer program codes. Construction techniques and methods will be described in more the detail in this book.

2.2.4. Testing
System testing involves all planned user groups. The level of acceptance is evaluated by all user groups based on the determined criteria.

2.2.5. Maintenance and Configuration

Chapter2_12When a software is considered appropriate to be used, the next stage would be the software maintenance. There were several software maintenance types known as shown in Figure 2.12.

Corrective maintenance is carried out to circumvent errors known as bugs. The maintenance Is carried out by improving the code, increased the some parts or eliminated certain parts.

Routine maintenance is also known as preventive maintenance is carried out routinely to maintain the performance of the software whether there is any mistakes / errors or not.

System upgrade maintenance is carried out to change any components of the software. For example, platform or operating system changed, old to new version change require upgrade of the software.

Saturday, March 21, 2009

Software Engineering-Chapter 1

Global Description to use this Tutorial  
Main subject of Engineering Software in general, describe the basics of Software Engineering, and solving problems, and methods of software development. The discussion about the sub-field of Operating System contains a computer system, the system operating and working in the computer network. The scope of the material basic algorithms include algorithms and advance algorithms. Sub field Programming Languages take a big portion, including GUI programming with VB & VB.Net, Java programming, C + + programming, Programming of object-oriented and web-based. Sub-sector which is the last part of this tutorial is a data base with the scope of the system databases, conceptual modeling, relational database, Microsoft Access and SQL.

This tutorial is structured in such a way so that for general readers can independently learn and encourage to try. Therefore, in this book, many will be found either in the form of illustration image, the scheme and program listings.

CHAPTER 1 INTRODUCTION

Picture1Let us see Picture 1,1. For most users, the above picture is fairly familiar. In the picture, the desktop of Microsoft Windows operating system is shown. Several icons is shown in the picture. Double clicking on the icon will open a certain software application that can be used to do a certain task.
These days almost all aspects of life were touched by the use of software. Some software may already been used or seen by us, such as, music
player, cashier application software, document editor, etc. These softwares were the results of a series of process or the activity that was known as the Software Engineering. What is Software Engineering? This chapter
will try to answer such question.

OBJECTIVES

This chapter should enable you to:

  • Able to explain on software, program, software engineering and procedures.
  • Understand the objectives of software engineering.
  • Understand the scope of software engineering.
  • Understand the position of the software engineering field in the discipline of computer science and its connection with the other fields. Knows the development in software engineering.
  • Known the profession and certification in the software engineering field.
  • Explained solution principles to the problems in the software engineering. Directorate Technical Vocational Education

1.1 SOFTWARE ENGINEERING CONCEPT

The Software Engineering term began to be popularized in 1968 at Software Engineering Conference that was held by NATO. Some people interpret Software Engineering to be limited on how to made a computer program. In fact, there are basic differences between software and computer program.
Software is all the command that can be used to process information. Software could take the form of the program or the procedure. The program was the collection ordered that was understood by the computer whereas the procedure was the order that was needed by the user in processing information (OfBrien, 1999).
A body of knowledge that discussed all the aspects of the production of software, starting from the early stage that is the analysis of the requirement for the user, determined the specification from the requirement for the user, the design, coding, the testing to the maintenance of the system after being used.
It is clear that Software Engineering is not only related to the production method of the computer program. The statement gall aspects of productionh in the above definition, has the meaning of all the matters that are connected with the process of the production like project management, the determination of the personnel, the budget of the cost, the method, the schedule, the quality up to the training of the user was a part of Software Engineering.

1.2 SOFTWARE ENGINEERING OBJECTIVES

Picture2In general, software engineering objectives are fairly similar to other engineering fields. Let us examine Figure 1.2.

Figure 1.2 shows that an engineering field will always try to produce the highest performance output at the lowest possible cost at exact time. The software engineering aims for,

  • Lower software production cost.
  • High performance and reliable software in time.
  • Multi platform software.
  • Low maintenance cost.

1.3 SCOPE

Picture3

As defined above, the scope of software engineering is as follows,

  • Software requirements related to the requirement specifications of the software.
  • Software design includes software architecture determination, software components, interface, as well as other software characteristics.
  • Software construction relates to the software development, including the algorithm, coding, testing, and debugging.
  • Software testing covers software behavior evaluation and testing.
  • Software maintenance Includes maintenance efforts as software is operated.
  • Software configuration management is related to the configuration of software
    to satisfy a certain requirement.
  • Software engineering management related to the management and the grating
    software engineering, including planning of the software project.
  • Software engineering tools and methods include the theoretical study on aids
    and the software engineering method.
  • Software engineering process is concerned with the definition, the implementation, the grating, the management, the change and the improvement of the process software engineering.
  • Software quality is stressed on the quality and the software life-cycle.

1.4 SOFTWARE ENGINEERING AND COMPUTER SCIENCE

Picture4Computer Science was born at the beginning of the 1940 's that was the integration from the theory of the algorithm, mathematical logic and the discovery of the storage method of the program electronically to the computer. Since then computer science had experienced continuous development and broadening.

The scope of knowledge in computer science often described as a
systematic study in processes of the algorithm that explained and
transformed information (Denning, 2000). It includes the theory, the
analysis, the design, efficiency, the application and it application.

Picture5There are several branch of knowledge in the computer science discipline as seen in the Figure 1.4, 1.5 and 1.6.

Picture6Based on Denning's (2000) and Wikipedia's
(2007), software engineering was the subsector of computer science that was equal to the other subsector. Whereas according to ACM (Association for Computing Machinery), software engineering is part of Section D (Software). Although being seen separated, in its application, the subsector software engineering always needed the support from the other subsector, especially algorithm and data structure, programming language, database, operating  system and network, and information system.

1.5 SOFWARE ENGINEERING AND OTHER DISCIPLINE

Picture7Since the scope of software engineering is quite wide, it relies heavily to other fields.

Not only with other sub sector in computer science but also other fields outside computer science. Software engineering relations with other fields
can be seen in Figure 1,7.

  • Management field covers accounting, financial, marketing, operation management, economics, quantitative analysis, human resources management, policy and business strategy.
  • mathematical field covers linear algebra, calculus, probabilistic, statistics, numerical analysis and discreet mathematics.
  • Project management field covers project related matters, such as, project scope, budgeting, human resource, quality control, risk management, and project scheduling.
  • Quality management field covers quality system development, risk and reliability management, quality improvement, and quantitative methods.
  • Ergonomics field covers man and machine interaction.
  • System engineering covers system theory, cost analysis, modeling, simulation, business process and operation.

1.6 PROFESSION AND CERTIFICATION

Software Engineer profession is fairly new for Indonesians. Most Indonesians possibly more familiar with the term Information Technology expert, Information System Analyst, Operator or the other term. It is due to the confusion on the term software engineer as described in the early of the chapter. However in countries with mature information technology, Software Engineer term is more often used.
Software engineer certification is still debatable among expert and software vendor. Most certification in software industry is usually product specific. For example, the software company like Redhat Linux Inc., Adobe Inc., Oracle, or Microsoft, give certification to those who master their product.
ACM (Association for Computing Machinery) had run Software Engineer certification program in the 1980. Unfortunately, they have to discontinue due to lack of interest.
IEEE (Institute of Electrical and Electronics Engineers) has Issued more than 500 certificates of software profession. Canada has issued a legal certificate for software engineer that was known as ISP (Information Systems Professional).
At this time, there is no software engineer certification in Indonesia. However, the National Competence for Computer Programmer has been defined. Although, it has not fully covered computer programmer field, it can be used for early approach to software engineer certification.

1.7 SOFTWARE ENGINEERING AND PROBLEM SOLVING
Software engineering had conceptually close to problem solving principles. Understanding on the problems, the strategy and the process as well as the system approach in the solution to the problem will help the software engineering processes.

  • 1.7.1 The Problem and The Symptom, A problem can be seen as the difference between the condition that happened and the condition that it was hoped. It might also be interpreted as the difference between the condition now and the aimed condition. For example, a student hoped to receive 80 in a C++ Programming exam, but in fact he only received 60. The existence of this difference showed the existence of a problem.
    Often it is difficulty to distinguish between the symptom and the problem. The symptom is a sign of the occurrence of a problem.
  • 1.7.2. Type of Problem 
    Problem in standard fulfillment. The problem in this group is related to the achievement of the standard that was determined in an organization. It usually relates to the long term objectives of the organization. 
    Problem in alternative selection. The problem in this group is in choosing the best solution from various alternatives based on certain criteria. This problem is often encountered in daily life, such as, choose the exact school, choose the residence location, choose field of work. The alternative and the criterion had the weight that was agreed to.
    Problem in customer's satisfaction fulfillment. In profit oriented organizations, problem in customer's satisfaction fulfillment is often emerged. The customers may have many wishes and one may be highly different than others. Fulfill all customer's wishes may not possible and very incriminating an organization. One must look for the solution that benefit both the customer and the organization.
    The problem in goal achievement. This type of problem resembles the first type of problem, problem in standard fulfillment. The difference, this type of problem is in achieving short term goals that might not be fixed can be altered in a short time.
  • 1.7.3. Problem Solving
    Problem solving is a process where a situation was observed and after the problem found, a solution is made by determining the problem, reducing or eliminating the problem or preventing the problem from happening.

to be continued to : Software Engineering-Chapter 2

Monday, March 2, 2009

Software Antivirus for Removable Media

Freeware MX One 3.8 Antivirus

Almost all computer users now take advantage of flash disk for easy data transfer between computers. However, risk contracting the virus, trojan, worms and other large removable media as a result of this. Now there is an easy way to protect the virus from removable media. This program can run on all removable media such as falsh disk, MP3/MP4 player, iPod, memory card (SD, MicroSD, MMC, Memory M2 and the like. The program is intended specifically as Freeware MX One 3.8 Antivirus.

Mx One is an antivirus designed for protect the devices of extraible storage like memoirs usb (also well-known as pendrives), iPod., mp3, mp4, memoirs M2, SD, microSD, Between many but devices in an effective and totally gratuitous way. It can be installed both on PC of such media. What is the main features of this Antivirus ?

  • Protection against: Virus, Trojanos, Worms, etc.
  • Compatible with any antivirus resident like for example: Nod32, Kaspersky,Bitdefender, AVG, Norton, Panda, Etc.
  • Protection in realtime with.
  • System “Check and Block” * it neutralizes all the viruses that are about infecting itsdevice while this connected one in an infected PC, even unknown virus.
  • Protection system modulates “Guardian” protect its PC of virus included stranger of those devices USB that are connected without caring if has installed Mx One.
  • Protection against unknown virus with the system “Check and Block”
  • It is very small alone it is needed 1Mb of space diponible.
  • 100% free

In the new version (Mx One Antivirus 3.8), there are many additional feature and bug fixed :

  • Now compatibility for exterenos and internal hard disks.
  • Fast Starting but.
  • Improvements in speed for equipment of low resources.
  • Changes in the graphic interface.
  • Disinfection and elimination in memory of the system with the new system (Stop and Destroy)
  • Now unit guardian has major cover in the devices.
  • New folder of exepciones ” Portables” where they are podran to have all the portable programs of confidence.
  • Optimizations to the motor of I scan customized.
  • Now he is but easy to differentiate to unit guardian from the USB.
  • Automatic Update of unit guardian.
  • No longer it is necessary to insert a device to execute unit guardian.
  • Menu of unit desing guardian real time and with new options.

I’ve tried this antivirus for PC, and it work well. When I try to plug my USB Flash drive, I got message that the Flash Drive is Clean. Where is the download link ? You can download Mx One Antivirus Here, and the update here. For more informations just go to the official site : http://www.mxone.net/en/